当前位置:开发工具->.NET ->JSON.NET 如何解析返回来的json数据

原创版权标志JSON.NET 如何解析返回来的json数据

作者:阿郎  发表时间:2018/1/3 8:26:04  阅读:
[摘要] JSON.NET可以很方便的解析json数据,使用的类是JArray和JObject
使用支付宝扫码领红包,余额宝付款才可以使用红包哦!不要忘记哈。每天扫一次,天天赚红包!!可以将二维码保存到手机,每天直接扫码领红包啦!!
今天开发的时候,遇到一个问题,需要解析返回来的json数据,格式如下:
{
 "RESP_PARAM": {
 "PUB_INFO": {
 "RETURN_RESULT": "0",
 "RETURN_DESC": "操作成功",
 "xxx": ""
 },
 "BUSI_INFO": {
 "GPRS_INFO_LIST": [
 {
 "GPRS_INFO": [
 {
 "xxx": "xx",
 "xxx": "xxxx",
 "xxx": "xx",
 "xxx": "xxx",
 "xxx": "xxx"
 }
 ]
 }
 ]
 }
 }
 }

怎么解析呢?我一开始就百度咯,后来发现没有很好地方法,有些人是自己封装了一个类来做,利用JSON.NET,后来一查,有个JSONReader,还可以吧,但是不能根据key来检索,又查了下,有个JArray和JObject,咦...这名字,json数据格式不就是对象和数组构成的嘛?看来这命名还是可以的。看看怎么做的吧:
string s = webservice.HttpPostWebService(url);
 //Console.WriteLine(s);///s 就是上面的json示例
 JObject o = JObject.Parse(s);
 string jsonString = o["RESP_PARAM"]["BUSI_INFO"]["GPRS_INFO_LIST"].ToString();
 //Console.WriteLine(jsonString);
 var jsonVals = JArray.Parse(jsonString) as JArray;
 var v = new JArray();
 //Console.WriteLine(jsonVals[0].ToString());
 for(int i=0; i<jsonVals.Count; i++)
 {
 //Console.WriteLine(jsonVals[i].ToString());
 v = JArray.Parse(jsonVals[i]["GPRS_INFO"].ToString());
 Console.WriteLine(v[i]["TOTAL"]);
 }

    这种情况比较少,我一开始只有一个数组,也就是正常按照JObject解析,随后解析JArray,但是这里有两个数组,因此,就采用了这种方法,你也可以用foreach迭代。

    

微信扫码关注公众号CPP技术网,微信号cpp_coder,关注我们的公众号,阅读更多精彩内容!每天还可以领取大红包哦!!!每天还可以领取大红包哦!!!每天还可以领取大红包哦!!!
文章来源:C++技术网原创文章版权为网站和作者共同所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。

返回顶部

在线提问
问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)