La forma más fácil de analizar la respuesta JSON

¿Hay alguna manera fácil de analizar debajo de JSOn en c #

{"type":"text","totalprice":"0.0045","totalgsm":"1","remaincredit":"44.92293","messages": [ {"status":"1","messageid":"234011120530636881","gsm":"923122699633"} ]} 

y en caso de resultados múltiples.

Sigue estos pasos:

  1. Convierta su JSON a C # usando json2csharp.com ;
  2. Cree un archivo de clase y coloque el código generado arriba;
  3. Agregue la biblioteca Newtonsoft.Json a su proyecto usando Nuget Package Manager;
  4. Convierta el JSON recibido de su servicio usando este código:

      RootObject r = JsonConvert.DeserializeObject(json); 

(Siéntase libre de cambiar el nombre de RootObject a algo más significativo para usted. Las otras clases deben permanecer sin cambios).

Puede usar de manera segura el JavaScriptSerializer incorporado sin hacer referencia a bibliotecas de terceros adicionales:

 var ser = new System.Web.Script.Serialization.JavaScriptSerializer(); ser.DeserializeObject(json); 

Encontré una forma de obtenerlo sin usar ninguna API externa

  using (var w = new WebClient()) { var json_data = string.Empty; string url = "YOUR URL"; // attempt to download JSON data as a string try { json_data = w.DownloadString(url); JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); var result = jsSerializer.DeserializeObject(json_data); Dictionary obj2 = new Dictionary(); obj2=(Dictionary)(result); string val=obj2["KEYNAME"].ToString(); } catch (Exception) { } // if string with JSON data is not empty, deserialize it to class and return its instance } 

Para mí … la forma más fácil de hacerlo es usar JSON.net para deserializar a una entidad que representa el objeto, por ejemplo:

 public class Message { public string status { get; set; } public string messageid { get; set; } public string gsm { get; set; } } public class YourRootEntity { public string type { get; set; } public string totalprice { get; set; } public string totalgsm { get; set; } public string remaincredit { get; set; } public List messages { get; set; } } 

Y haz esto:

 YourRootEntity data JsonConvert.DeserializeObject(jsonStrong);