C# JSON

1、C# 获取json中某key对应的值,支持迭代

 1 /// <summary>
 2 /// 从json中获取对应key的value值
 3 /// </summary>
 4 /// <param name="json字符串"></param>
 5 /// <param name="需要取value对应的key"></param>
 6 /// <returns></returns>
 7 public string GetJsonValue(string strJson , string key) 
 8 {
 9     //测试:
10     //strJson = @"{'1':{'id':{'ip':'192.168.0.1','p':34,'pass':'ff','port':80,'user':'t'}},'code':0}";
11     //key = "user"
12     string strResult="";
13     JObject jsonObj = JObject.Parse(strJson);
14     strResult = GetNestJsonValue(jsonObj.Children(), key);
15     return strResult;
16 }
17 /// <summary>
18 /// 迭代获取eky对应的值
19 /// </summary>
20 /// <param name="jToken"></param>
21 /// <param name="key"></param>
22 /// <returns></returns>
23 public string GetNestJsonValue(JEnumerable<JToken> jToken, string key) 
24 {
25     IEnumerator enumerator = jToken.GetEnumerator();
26     while (enumerator.MoveNext()) 
27     {
28         JToken jc = (JToken)enumerator.Current;
29         if (jc is JObject || ((JProperty)jc).Value is JObject) 
30         {
31             return GetNestJsonValue(jc.Children(), key);
32         } else 
33         {
34             if (((JProperty)jc).Name == key) 
35             {
36                 return ((JProperty)jc).Value.ToString();
37             }
38         }
39     }
40     return null;
41 }
View Code

 

posted @ 2022-11-14 21:36  船长华莱士  阅读(114)  评论(0)    收藏  举报