¿Cuál es la función C # más simple para analizar una cadena JSON en un objeto?

¿Cuál es la función C # más simple para analizar una cadena JSON en un objeto y mostrarla (C # XAML WPF)? (por ejemplo objeto con 2 arrays – arrA y arrB)

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(YourObjectType)); YourObjectType yourObject = (YourObjectType)serializer.ReadObject(jsonStream); 

También podría usar JavaScriptSerializer , pero DataContractJsonSerializer supuestamente puede manejar tipos complejos.

Curiosamente, JavaScriptSerializer fue una vez obsoleto (en 3.5) y luego resucitó debido a ASP.NET MVC (en 3.5 SP1). Eso definitivamente sería suficiente para sacudir mi confianza y llevarme a utilizar DataContractJsonSerializer ya que está duro cocido para WCF.

Solo use la biblioteca Json.NET . Le permite analizar cadenas de formato Json muy fácilmente:

 JObject o = JObject.Parse(@" { ""something"":""value"", ""jagged"": { ""someother"":""value2"" } }"); string something = (string)o["something"]; 

Documentación: Análisis del objeto JSON utilizando JObject.Parse

Creo que esto es lo que quieres:

 JavaScriptSerializer JSS = new JavaScriptSerializer(); T obj = JSS.Deserialize(String); 

Debe crear una estructura que represente claves JSON (en caso de que lo sepa exactamente) y luego puede deserializar fácilmente la cadena JSON en su estructura. En mi examen, he deserializado una respuesta del servidor Google Cloud Message:

 class templateResponse { public String multicast_id; public String success; public String failure; public String canonical_ids; public Result[] results; public class Result { public String message_id; public String registration_id; public String error; }; } 

JSON entrante fue:

 "\"multicast_id\":7400896764380883211,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1351777805148960%39895cf0f9fd7ecd\"}]}" 

Entonces, usa

 templateResponse result = new JavaScriptSerializer().Deserialize(json); 

y obtendrás un objeto de result deserializado

Me gustaría hacer eco de la biblioteca Json.NET, que puede transformar la respuesta JSON en un documento XML. Con el documento XML, puede consultar fácilmente con XPath y extraer los datos que necesita. Encuentro esto bastante útil.