Newtonsoft JSON и десериализовать
мой JSON выглядит следующим образом:
{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]}
Я нашел библиотеку Newtonsoft десериализации Json.NET для C#. Я попытался использовать его следующим образом:
object JsonDe = JsonConvert.DeserializeObject(Json);
как я могу получить доступ к JsonDe объект, чтобы получить все данные "типа"? Я попробовал его с циклом, но он не работает, потому что объект не имеет перечислителя.
3 ответов:
вы можете реализовать класс, который содержит поля, которые у вас есть в вашем JSON
class MyData { public string t; public bool a; public object[] data; public string[][] type; }а затем использовать общую версию DeserializeObject:
MyData tmp = JsonConvert.DeserializeObject<MyData>(json); foreach (string typeStr in tmp.type[0]) { // Do something with typeStr }документы: сериализация и десериализация JSON
гораздо более простое решение: использование динамического типа
по состоянию на Json.NET 4.0 релиз 1, есть родной динамический поддержка. Вам не нужно объявлять класс, просто используйте
dynamic:dynamic jsonDe = JsonConvert.DeserializeObject(json);все поля будут доступны:
foreach (string typeStr in jsonDe.Type[0]) { // Do something with typeStr } string t = jsonDe.t; bool a = jsonDe.a; object[] data = jsonDe.data; string[][] type = jsonDe.Type;С динамический вам не нужно создавать определенный класс для хранения ваших данных.
на Документация Newtonsoft вы также можете десериализовать анонимный объект следующим образом:
var definition = new { Name = "" }; string json1 = @"{'Name':'James'}"; var customer1 = JsonConvert.DeserializeAnonymousType(json1, definition); Console.WriteLine(customer1.Name); // James
Comments