Qual é a function C # mais simples para analisar uma cadeia JSON em um object?

Qual é a function C # mais simples para analisar uma cadeia JSON em um object e exibi-lo (C # XAML WPF)? (por exemplo, object com 2 matrizes – arrA e arrB)

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

Você também pode usar o JavaScriptSerializer , mas o DataContractJsonSerializer é supostamente melhor capaz de lidar com tipos complexos.

Estranhamente, o JavaScriptSerializer já foi obsoleto (na versão 3.5) e depois ressuscitado por causa do ASP.NET MVC (no 3.5 SP1). Isso definitivamente seria suficiente para abalar minha confiança e me levar a usar o DataContractJsonSerializer já que ele é muito difícil para o WCF.

Apenas use a biblioteca Json.NET . Ele permite que você analise facilmente as strings do formato Json:

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

Documentação: Parsing JSON Object usando JObject.Parse

Eu acho que isso é o que você quer:

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

Você deve criar uma estrutura que represente chaves JSON (no caso, se você sabe exatamente) e, em seguida, você pode facilmente deserializar a cadeia JSON em sua estrutura. No meu exemplo, eu deserializei uma resposta do servidor do 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 recebido foi:

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

Então, use

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

e você obterá object de result desserializado

Eu faria eco da biblioteca Json.NET, que pode transformar a resposta JSON em um documento XML. Com o documento XML, você pode consultar com facilidade o XPath e extrair os dados necessários. Eu acho isso muito útil.