Как я могу десериализовать элементарные типы из json в ASP.NET (System.Runtime.Serialization.Json) - PullRequest
1 голос
/ 12 ноября 2009

HI! У меня небольшая проблема. Когда я использую DataContractJsonSerializer со сложными типами (собственными типами), он работает нормально. Но я должен десериализовать TimeStamp или DateTime из строки. Поэтому я не могу пометить этот тип с помощью атрибутов DataContract, DataMember.

Я написал код


string jsonedTS="PT2M15S";

DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(TimeSpan));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonedTS));
            try
            {
                result.Takes = (TimeSpan)jsonSerializer.ReadObject(ms);
            }
            catch
            {
                ;
            }

И я ловлю это исключение

{"Произошла ошибка десериализации объекта типа System.TimeSpan. Обнаружен неожиданный символ 'P'."} System.Exception {System.Runtime.Serialization.SerializationException}

И мой вопрос Как я могу десериализовать

1 Ответ

0 голосов
/ 12 ноября 2009

Вы можете попробовать с библиотекой Json.Net - она ​​хорошо работала для нас в прошлом.

...