Newtonsoft JSON Deserializar

Mi JSON es el siguiente:

{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]} 

Encontré la biblioteca deserialize de Newtonsoft JSON.NET para C #. Traté de usarlo de la siguiente manera:

 object JsonDe = JsonConvert.DeserializeObject(Json); 

¿Cómo puedo acceder al objeto JsonDe para obtener todos los datos “Tipo”? Lo intenté con un bucle pero no funciona porque el objeto no tiene un enumerador.

Puede implementar una clase que contenga los campos que tiene en su JSON

 class MyData { public string t; public bool a; public object[] data; public string[][] type; } 

y luego use la versión genérica de DeserializeObject:

 MyData tmp = JsonConvert.DeserializeObject(json); foreach (string typeStr in tmp.type[0]) { // Do something with typeStr } 

Documentación: Serialización y deserialización de JSON

Una solución mucho más fácil: usar un tipo dynamic

A partir de Json.NET 4.0 Versión 1, existe soporte dynamic nativo. No necesita declarar una clase, solo use dynamic :

 dynamic jsonDe = JsonConvert.DeserializeObject(json); 

Todos los campos estarán disponibles:

 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; 

Con Dynamic no es necesario crear una clase específica para contener sus datos.

De acuerdo con la documentación de Newtonsoft , también puede deserializar un objeto anónimo como este:

 var definition = new { Name = "" }; string json1 = @"{'Name':'James'}"; var customer1 = JsonConvert.DeserializeAnonymousType(json1, definition); Console.WriteLine(customer1.Name); // James