基本环境
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,实际是一个<key,value>
对象组成的数组,可以遍历和获得value的值
IEnumerable<JProperty> 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