Json конвертировать TimeSpan Ошибка. Net Core 2.2 - PullRequest
2 голосов
/ 25 февраля 2020

я работаю с. net ядром 2.2, я пытался десериализовать данные из WebApi, но тип TimeSpan не преобразован.

Мое InnerException: {"Не удалось привести или преобразовать из системы. Строка в System.TimeSpan."}

My ErrorMessage: {" Ошибка преобразования значения «PT20H20M» в тип «System.TimeSpan '. Значение пути» [0]. StartTime ', строка 1, позиция 179. "}

проблема в члене моего класса: publi c TimeSpan StartTime {get; набор; }

Может кто-то получить ту же ошибку или кто-то может дать мне несколько советов о том, как решить проблему.

Спасибо!

1 Ответ

1 голос
/ 25 февраля 2020

Что ж, я думаю, ошибка в том, что конвертер по умолчанию не знает формат, который вы пытаетесь отправить. Вы должны использовать формат, который он понимает, или использовать собственный конвертер, или использовать строку, а потом конвертировать ее самостоятельно. .

Если вы запустите TimeSpan.Parse("PT20H20M"), вы получите ошибку, которая говорит, что это недопустимый формат.

Похоже, что этот вызов может получить TimeSpan:

System.Xml.XmlConvert.ToTimeSpan("P2DT01H")

Вы можете использовать пользовательский конвертер, как описано здесь или здесь (Первый - для. net core 3).

...