C# json提取多层嵌套到数组

本文探讨了使用Newtonsoft.Json库解析JSON字符串时遇到的问题及解决方法,特别是解析结果中多余的双引号问题,并提供了正确的代码示例。


json好久没用了,今天在用到json的时候,发现对字符串做解析的时候总是多出双引号。

代码如下:

string jsonText =  " {'name':'test','phone':'18888888888'} ";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo[ " name "].ToString();
string zone_en = jo[ " phone "].ToString();

取出来的是"test","18888888888"这样的,研究了好长时间也是不行。

因为用的是Newtonsoft.Json,后来在官网又下载了最新版本,发现取值正确了,取来的test,18888888888

分析原因可就是版本问题,之前用的一直是Newtonsoft.Json.Net20,现在程序框架用的是.net 4.0,下载的最新版本里面对.net各个版本的都有编译文件,很不错。



json比一般格式再复杂点的就像数组一样,有多层嵌套,研究了一下,记录代码如下:

复制代码
  string jsonText =  " {'name':'test','phone':'18888888888','image':[{'name':'img1','data':'data1'},{'name':'img2','data':'data2'},{'name':'img3','data':'data3'}]} ";
  JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
  string zone = jo["name"].ToString();   string zone_en = jo["phone"].ToString();
  JArray jar = JArray.Parse(jo[ " image "].ToString());
  MessageBox.Show(zone);
  MessageBox.Show(zone_en);
  for (var i = 0; i < jar.Count; i++)
  {    

         JObject j = JObject.Parse(jar[i].ToString());

        MessageBox.Show(j[ " name "].ToString());
        MessageBox.Show(j[ " data "].ToString());
  }
复制代码
关键就是用到了JArray.Parse。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值