Member 12183079 Ответов: 2

Как преобразовать json в объект класса в C#


Исключение типа 'System.InvalidCastException' произошло в RetrieveData.dll но не был обработан в пользовательском коде

Дополнительная информация: невозможно привести объект типа 'System.Коллекции.Generic.Dictionary`2[System.Строка,Система.Object]' to type 'RetrieveData.Модели.FlightDetails'.

Что я уже пробовал:

пытаюсь преобразовать JSON-данные в объект класса рейса выше я выкладывал ошибку, пожалуйста, помогите-


XmlDocument doc = новый XmlDocument();
док.LoadXml(ДЭП);
строка jsonText = JsonConvert.SerializeXmlNode(doc);

// DataTable tester = (DataTable)JsonConvert.DeserializeObject(jsonText, (typeof(DataTable)));
таблица var = JsonConvert.DeserializeAnonymousType(jsonText, new { Makes = default(DataTable) }).Делает;
JavaScriptSerializer json_serializer = новый JavaScriptSerializer();
FlightDetails routes_list = (FlightDetails)json_serializer.DeserializeObject(jsonText);

F-ES Sitecore

Не зная, что вы пытаетесь преобразовать, и во что вы пытаетесь преобразовать это, невозможно дать конкретный совет. Google "c# десериализует json" для вещей, которые могут помочь.

2 Ответов

Рейтинг:
2

OriginalGriff

Начните с рассмотрения того, что содержит json. Это может помочь: json2csharp - генерация классов c# из json[^] - он генерирует классы C# из строки JSON, которые затем можно использовать (или сравнивать) с классами в вашем приложении.

- Я? Я использую Newtonsoft, где создание экземпляров и их заполнение очень просты:

MyClass mc = Newtonsoft.Json.JsonConvert.DeserializeObject<MyClass>(jsonString);
где MyClass может быть чем угодно: List<T>, один экземпляр класса, что бы вы ни содержали в JSON.


Рейтинг:
2

Graeme_Grant

У меня есть статья, которую я собрал на основе вопросов здесь. Он охватывает все, что вам нужно: Работа с JSON в C# и VB[^]