您的位置:首页 > Web前端 > JavaScript

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

2014-06-21 12:21 295 查看
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: