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
;
}
At the time of the call:
string
jsonData =
"{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}"
;
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(),
"province"
));
If there are multiple layers of nested arrays
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"
]);
Method of extracting multilayer nested JSON data from ASP