最简单的方法来parsingJSON响应

有没有什么简单的方法来parsingJSOn下c#

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

并在多个结果的情况下。

按着这些次序:

  1. 使用json2csharp.com将您的JSON转换为C#;
  2. 创build一个类文件,并把上面生成的代码放在那里;
  3. 使用Nuget Package Manager将Newtonsoft.Json库添加到您的项目;
  4. 使用以下代码转换从您的服务收到的JSON:

      RootObject r = JsonConvert.DeserializeObject<RootObject>(json); 

(随意将RootObject重命名为对您更有意义的内容,其他类应保持不变。)

您可以安全地使用内置JavaScriptSerializer而无需引用额外的第三方库:

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

对我来说…最简单的方法是使用JSON.net对表示对象的实体进行反序列化,例如:

 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<Message> messages { get; set; } } 

做到这一点:

 YourRootEntity data JsonConvert.DeserializeObject<YourRootEntity>(jsonStrong); 

我find了一种不使用任何外部API的方法

  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<string, object> obj2 = new Dictionary<string, object>(); obj2=(Dictionary<string,object>)(result); string val=obj2["KEYNAME"].ToString(); } catch (Exception) { } // if string with JSON data is not empty, deserialize it to class and return its instance }