C#:Json字符串、JsonArray字符串处理

今天在做Asp网站开发的时候接受到了一种下面这种样子的字符串:

 1 "[
 2     {
 3         "mid": "123456",
 4         "nid": "321",
 5         "data": [
 6             {
 7                 "mid": "1",
 8                 "name": "111"
 9             },
10             {
11                 "mid": "2",
12                 "name": "222"
13             },
14             {
15                 "mid": "3",
16                 "name": "333"
17             },
18             {
19                 "mid": "4",
20                 "name": "444"
21             },
22             {
23                 "mid": "5",
24                 "name": "555"
25             }
26         ]
27     },
28     {
29         "mid": "123456",
30         "nid": "321",
31         "data": [
32             {
33                 "mid": "1",
34                 "name": "111"
35             },
36             {
37                 "mid": "2",
38                 "name": "222"
39             },
40             {
41                 "mid": "3",
42                 "name": "333"
43             },
44             {
45                 "mid": "4",
46                 "name": "444"
47             },
48             {
49                 "mid": "5", 
50                 "name": "555"
51             }
52         ]
53     }
54 ]"

查阅了资料发现 这种写法的字符串其实是一种Json数组,

Json数组格式为:[{"name1":"value","name2":"value"},{"name1":"value","name2":"value"}];

而由"{ }"包括着的是一个Json对象。

我们在开发中经常遇到的多是这两种格式的字符串。

对于一个json对象格式的字符串:

直接使用JObject job =JObject.Parse("....."),就可以转换为json对象;

然后使用 job["属性名"]的方式就可以取出其中一个一个的值。

由多个json对象组成的json数组格式的字符串:

第一步:将jsonArray格式字符串转换成JsonArray对象;

第二步:遍历JsonArray中的每一项(每一项都是一个Json对象);

第三步:和单个json对象的解析方式是一样的。

 1 string hh ="[{"mid": "123456","nid": "321","data": [{"mid": "1","name": "111" },{"mid": "2","name": "222"}, {"mid": "3","name": "333" },{"mid": "4","name": "444"},{"mid": "5","name": "555" }    ]},{"mid": "123456","nid": "321","data": [ {"mid": "1","name": "111" }, {"mid": "2","name": "222" }, {"mid": "3","name": "333"},{"mid": "4","name": "444" }, {"mid": "5", "name": "555" } ]}
]";
 3             JArray jArray = JArray.Parse(hh);
 4             foreach (var jj in jArray)
 5             {
 6                 // string job= jj.ToString();
 7                 //JObject jObject=JObject.Parse(job);
 8                 JObject job = (JObject)jj;
 9                 JArray datArray = JArray.Parse(job["data"].ToString());
10                 foreach (var item in datArray)
11                 {
12                     JObject jdata = (JObject)item;
13                     string aa = jdata["mid"].ToString();
14                     string bb = jdata["name"].ToString();
15                 }
16             }

记录下来,以后遇见类似的需求希望能用到!

原文地址:https://www.cnblogs.com/bigbosscyb/p/9520638.html