C#中对于json格式数据的处理

基本环境


vs2013
.NetFramework4.5
命名空间:using Newtonsoft.Json.Linq

 

 


Json字符串不知道key值如何获得value

 

//假设浏览器返回的数据如下:
    string response={"672": 
        {"id": "672", 
        "level":0,
        "children":[
        "b9185a050d0540fea32cdd6fdf5e0d7d",
        "727dc5216f504174a30475f268a616f8",
        "57c8e7da25a34bee832d8fd2cfeed5c1"]
        }
    }12345678910

但是我们不知道“672”这个key的值,他是浏览器随机返回的,这种情况,可以采用如下的方式,使用JProperty:

 

JObject json = JObject.Parse(response); 

//得到json对应的propertyies,实际是一个
对象组成的数组,可以遍历和获得value的值
IEnumerable properties = json.Properties(); 

// 遍历Jproperty对象
foreach(JProperty item in properties) 
{
   //得到value并转化为object对象,得到子json
   JObject node = JObject.Parse(item.Value.ToString()); 

}12345678910111213

 

获得Json字符串中的数组

同样是上文中的response,由于children是一个数组,可以采用JToken对象获得数组对象并进行遍历;代码如下(接上文代码):

 

JToken children =node["children"];
foreach(JProperty child in children)
{
   // 即可得到字符串"b9185a050d0540fea32cdd6fdf5e0d7d"等
   string name = (string)child;
}
--------------------- 

原文:https://blog.csdn.net/pinebud55/article/details/51509447 
 

你可能感兴趣的:(C#+asp.net)