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\" } ]}\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             }

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

转载于:https://www.cnblogs.com/bigbosscyb/p/9520638.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值