Десериализовать данные JSON
Привет,
я хочу десериализовать данные json.
мой класс идет полным ходом.
public class ServiceAgreementKey { public string abc{ get; set; } } public class ServiceAgreementAddtionKey { public string 123{ get; set; } } public class ServiceAgreementAddition { public ServiceAgreementAddtionKey serviceAgreementAddtionKey { get; set; } public int price{ get; set; } } public class ServiceKit { public string Number { get; set; } } public class ServiceOccasion { public string serviceOccasionDate { get; set; } public List<servicekit> serviceKits { get; set; } } public class RootObject { public ServiceAgreementKey serviceAgreementKey { get; set; } public List<serviceagreementaddition> serviceAgreementAdditions { get; set; } public List<serviceoccasion> serviceOccasions { get; set; }
Что я уже пробовал:
RootObject dataObjects = response.Content.ReadAsAsync<rootobject>().Result;
я получаю следующую ошибку:
{"Не удается десериализовать текущий объект JSON (например, {\"name\":\ " value\"}) в тип 'System.Коллекции.Generic. List`1, потому что для правильной десериализации типа требуется массив JSON (например, [1,2,3]).чтобы исправить эту ошибку, либо измените JSON на массив JSON (например, [1,2,3]), либо измените десериализованный тип так, чтобы он был нормальным .Чистый тип (например, не примитивный тип, такой как integer, не тип коллекции, такой как array или List<t>), который может быть десериализован из объекта JSON. JsonObjectAttribute также может быть добавлен к типу, чтобы заставить его десериализоваться из объекта JSON}
может ли какой-нибудь ОНР помочь в этом...
спасибо...
F-ES Sitecore
Ошибка не требует объяснений, тип, который вы пытаетесь десериализовать, не может быть сопоставлен с используемым вами JSON. Видя, что вы не опубликовали данные JSON, поскольку вы не думаете, что это может помочь людям решить вашу проблему, мы мало что можем сделать.
Nathan Minier
Таким образом, JSON имеет 2 типа: объект и массив.
Объекты содержат свойства (которые могут быть массивами).
Массивы содержат объекты, но не свойства.
Вы пытаетесь де-сериализовать объект, как если бы он был массивом, чего он не может сделать.
На первый взгляд, глядя на небольшой код, который вы предоставили, либо свойство serviceAgreementAdditions, либо serviceOccasions было сериализовано как объект. Посмотрите на необработанный JSON, это должно быть довольно очевидно.