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

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             }

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

推荐阅读

    字符库快捷键|字符串快捷键

    字符库快捷键|字符串快捷键,,1. 字符串快捷键1、单行注释单行注释是 #Mac的快捷键是 command+/windows的快捷键是 Ctrl + /2、多行注

    红米1s主板烧坏是什么样子

    红米1s主板烧坏是什么样子,主板,故障,帮忙,1. 红米1s手机主板故障,会表现出很多情况,例如无法开机,黑屏,无法充电等等。2. 如果手机出现问题,用

    Python之可迭代对象、迭代器、生成器

    Python之可迭代对象、迭代器、生成器,迭代,生成器,一、概念描述可迭代对象就是可以迭代的对象,我们可以通过内置的iter函数获取其迭代器,可

    应用程序对象

    应用程序对象,,应用程序对象是一个应用程序级对象,用于在所有用户之间共享信息,并且在Web应用程序运行期间可以保存数据。 应用的性质: 方法

    Java创建对象的几种方式

    Java创建对象的几种方式,对象,方法,本文目录Java创建对象的几种方式java中几种创建对象的方式1Java中创建对象的集中方式有那些JAVA创建对