asp.net提取多层嵌套json数据的方法

public string GetJsonValue(JEnumerable<JToken> jToken,string key)
{
IEnumerator enumerator = jToken.GetEnumerator();
while (enumerator.MoveNext())
{
JToken jc = (JToken)enumerator.Current;
if (jc is JObject||((JProperty)jc).Value is JObject)
{
return GetJsonValue(jc.Children(), key);
}
else
{
if (((JProperty)jc).Name == key)
{
return ((JProperty)jc).Value.ToString();
}
}
}
return null;
}
在调用的时候:
string jsonData = "{"name":"lily","age":23,"addr":{"city":"guangzhou","province":"guangdong"}}";
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(), "province"));
 
如果有多层嵌套的数组
string jsonData = "{"addr":[{"city":"guangzhou","province":"guangdong"},{"city":"guiyang","province":"guizhou"}]}";
JObject jsonObj = JObject.Parse(jsonData);
JArray jar = JArray.Parse(jsonObj["addr"].ToString());
JObject j = JObject.Parse(jar[0].ToString());
Response.Write(j["city"]);
原文地址:https://www.cnblogs.com/sjqq/p/6362781.html