首页 > 技术文章 > C#:Json字符串、JsonArray字符串处理

bigbosscyb 2018-08-22 21:52 原文

今天在做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\" } ]}\r\n]";
 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             }

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

推荐阅读