一,json的两种数据结构
1.1,对象
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。
1 {2 ????key1:value1,3 ????key2:value2,4 ????...5 }
1.2,数组
其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组
数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。
[ ???{ ???????key1:value1, ???????key2:value2 ????}, ???{ ????????key3:value3, ????????key4:value4 ??????}]
二,json格式的升级
2.1,一级-----key,value键值对
是一个个键值对
其中key可以带“”,也可以不带
???Code: "414500",
或者这种的
??"Code": "414500",
都对。
2.2,二级-----对象
1 {2 ????"Code": "414500",3 ????"Name": "二七区",4 ????"sort": 15 }
json格式的数据在升级是一个对象,这种对象的格式就类似于这种的,注意最后一个没有,号
2.3,三级-----数组
1 [ 2 ????{ 3 ????????"Code": "414500", 4 ????????"Name": "二七区", 5 ????????"sort": 1 6 ????}, 7 ????{ 8 ????????"Code": "414500", 9 ????????"Name": "中原区",10 ????????"sort": 211 ????}12 ]
json格式在对象的基础上会把一个个的对象放到数组当中成为一个数组
2.4,四级-----对象
1 { 2 ????"level": [ 3 ????????{ 4 ????????????"Code": "414500", 5 ????????????"Name": "二七区", 6 ????????????"sort": 1 7 ????????}, 8 ????????{ 9 ????????????"Code": "414500",10 ????????????"Name": "中原区",11 ????????????"sort": 212 ????????}13 ????]14 }
假如现在再把这个数据赋给一个对象,那么它现在又从数据变成对象了,level相当于key,而整个数组就是value
2.5,五级-----对象
1 { 2 ????"Code": "414500", 3 ????"Name": "郑州市", 4 ????"level": [ 5 ????????{ 6 ????????????"Code": "414500", 7 ????????????"Name": "二七区", 8 ????????????"sort": 1 9 ????????},10 ????????{11 ????????????"Code": "414500",12 ????????????"Name": "中原区",13 ????????????"sort": 214 ????????}15 ????],16 ????"sort": 117 }
,现在是往已有的对象里面添加新的数据,是对对象的补充。
2.6,六级-----数组
1 [ 2 ????{ 3 ????????"Code": "414500", 4 ????????"Name": "郑州市", 5 ????????"level": [ 6 ????????????{ 7 ????????????????"Code": "414500", 8 ????????????????"Name": "二七区", 9 ????????????????"sort": 110 ????????????},11 ????????????{12 ????????????????"Code": "414500",13 ????????????????"Name": "中原区",14 ????????????????"sort": 215 ????????????}16 ????????],17 ????????"sort": 118 ????},19 ????{20 ????????"Code": "414530",21 ????????"Name": "新乡市",22 ????????"level": [23 ????????????{24 ????????????????"Code": "414530",25 ????????????????"Name": "卫滨区",26 ????????????????"sort": 127 ????????????},28 ????????????{29 ????????????????"Code": "414530",30 ????????????????"Name": "牧野区",31 ????????????????"sort": 232 ????????????}33 ????????],34 ????????"sort": 235 ????}36 ]
现在在把这个对象当成数组的0号元素放到一个数据中去。
2.7,七级-----对象
1 { 2 ????"level": [ 3 ????????{ 4 ????????????"Code": "414500", 5 ????????????"Name": "郑州市", 6 ????????????"level": [ 7 ????????????????{ 8 ????????????????????"Code": "414500", 9 ????????????????????"Name": "二七区",10 ????????????????????"sort": 111 ????????????????},12 ????????????????{13 ????????????????????"Code": "414500",14 ????????????????????"Name": "中原区",15 ????????????????????"sort": 216 ????????????????}17 ????????????],18 ????????????"sort": 119 ????????},20 ????????{21 ????????????"Code": "414530",22 ????????????"Name": "新乡市",23 ????????????"level": [24 ????????????????{25 ????????????????????"Code": "414530",26 ????????????????????"Name": "卫滨区",27 ????????????????????"sort": 128 ????????????????},29 ????????????????{30 ????????????????????"Code": "414530",31 ????????????????????"Name": "牧野区",32 ????????????????????"sort": 233 ????????????????}34 ????????????],35 ????????????"sort": 236 ????????}37 ????]38 }
(第三步很像)
假如现在再把这个数据赋给一个对象,那么它现在又从数据变成对象了,level相当于key,而整个数组就是value
2.8,八级-----对象
1 { 2 ????"Code": "410000", 3 ????"Name": "河南省", 4 ????"level": [ 5 ????????{ 6 ????????????"Code": "414500", 7 ????????????"Name": "郑州市", 8 ????????????"level": [ 9 ????????????????{10 ????????????????????"Code": "414500",11 ????????????????????"Name": "二七区",12 ????????????????????"sort": 113 ????????????????},14 ????????????????{15 ????????????????????"Code": "414500",16 ????????????????????"Name": "中原区",17 ????????????????????"sort": 218 ????????????????}19 ????????????],20 ????????????"sort": 121 ????????},22 ????????{23 ????????????"Code": "414530",24 ????????????"Name": "新乡市",25 ????????????"level": [26 ????????????????{27 ????????????????????"Code": "414530",28 ????????????????????"Name": "卫滨区",29 ????????????????????"sort": 130 ????????????????},31 ????????????????{32 ????????????????????"Code": "414530",33 ????????????????????"Name": "牧野区",34 ????????????????????"sort": 235 ????????????????}36 ????????????],37 ????????????"sort": 238 ????????}39 ????]40 }
第四步很像
2.9,九级-----数组
1 [ 2 ????{ 3 ????????"Code": "940000", 4 ????????"Name": "澳门特别行政区", 5 ????????"level": [ 6 ????????????{ 7 ????????????????"Code": "940000", 8 ????????????????"Name": "澳门特别行政区", 9 ????????????????"level": [10 ????????????????????{11 ????????????????????????"Code": "940000",12 ????????????????????????"Name": "澳门特别行政区",13 ????????????????????????"sort": 114 ????????????????????}15 ????????????????],16 ????????????????"sort": 117 ????????????}18 ????????]19 ????},20 ????{21 ????????"Code": "410000",22 ????????"Name": "河南省",23 ????????"level": [24 ????????????{25 ????????????????"Code": "414500",26 ????????????????"Name": "郑州市",27 ????????????????"level": [28 ????????????????????{29 ????????????????????????"Code": "414500",30 ????????????????????????"Name": "二七区",31 ????????????????????????"sort": 132 ????????????????????},33 ????????????????????{34 ????????????????????????"Code": "414500",35 ????????????????????????"Name": "中原区",36 ????????????????????????"sort": 237 ????????????????????}38 ????????????????],39 ????????????????"sort": 140 ????????????},41 ????????????{42 ????????????????"Code": "414530",43 ????????????????"Name": "新乡市",44 ????????????????"level": [45 ????????????????????{46 ????????????????????????"Code": "414530",47 ????????????????????????"Name": "卫滨区",48 ????????????????????????"sort": 149 ????????????????????},50 ????????????????????{51 ????????????????????????"Code": "414530",52 ????????????????????????"Name": "牧野区",53 ????????????????????????"sort": 254 ????????????????????}55 ????????????????],56 ????????????????"sort": 257 ????????????}58 ????????]59 ????}60 ]
2.10,10级-----把数组赋给对象(与前面的有点不一样),注意这个不是json格式的数据
1 {cityData= 2 [ 3 ????{ 4 ????????"Code": "940000", 5 ????????"Name": "澳门特别行政区", 6 ????????"level": [ 7 ????????????{ 8 ????????????????"Code": "940000", 9 ????????????????"Name": "澳门特别行政区",10 ????????????????"level": [11 ????????????????????{12 ????????????????????????"Code": "940000",13 ????????????????????????"Name": "澳门特别行政区",14 ????????????????????????"sort": 115 ????????????????????}16 ????????????????],17 ????????????????"sort": 118 ????????????}19 ????????]20 ????},21 ????{22 ????????"Code": "410000",23 ????????"Name": "河南省",24 ????????"level": [25 ????????????{26 ????????????????"Code": "414500",27 ????????????????"Name": "郑州市",28 ????????????????"level": [29 ????????????????????{30 ????????????????????????"Code": "414500",31 ????????????????????????"Name": "二七区",32 ????????????????????????"sort": 133 ????????????????????},34 ????????????????????{35 ????????????????????????"Code": "414500",36 ????????????????????????"Name": "中原区",37 ????????????????????????"sort": 238 ????????????????????}39 ????????????????],40 ????????????????"sort": 141 ????????????},42 ????????????{43 ????????????????"Code": "414530",44 ????????????????"Name": "新乡市",45 ????????????????"level": [46 ????????????????????{47 ????????????????????????"Code": "414530",48 ????????????????????????"Name": "卫滨区",49 ????????????????????????"sort": 150 ????????????????????},51 ????????????????????{52 ????????????????????????"Code": "414530",53 ????????????????????????"Name": "牧野区",54 ????????????????????????"sort": 255 ????????????????????}56 ????????????????],57 ????????????????"sort": 258 ????????????}59 ????????]60 ????}61 ]62 }
这个对象当中可以添加非json格式的数据,如下
2.11,11级-----对象
1 {cityData= 2 [ 3 ????{ 4 ????????"Code": "940000", 5 ????????"Name": "澳门特别行政区", 6 ????????"level": [ 7 ????????????{ 8 ????????????????"Code": "940000", 9 ????????????????"Name": "澳门特别行政区",10 ????????????????"level": [11 ????????????????????{12 ????????????????????????"Code": "940000",13 ????????????????????????"Name": "澳门特别行政区",14 ????????????????????????"sort": 115 ????????????????????}16 ????????????????],17 ????????????????"sort": 118 ????????????}19 ????????]20 ????},21 ????{22 ????????"Code": "410000",23 ????????"Name": "河南省",24 ????????"level": [25 ????????????{26 ????????????????"Code": "414500",27 ????????????????"Name": "郑州市",28 ????????????????"level": [29 ????????????????????{30 ????????????????????????"Code": "414500",31 ????????????????????????"Name": "二七区",32 ????????????????????????"sort": 133 ????????????????????},34 ????????????????????{35 ????????????????????????"Code": "414500",36 ????????????????????????"Name": "中原区",37 ????????????????????????"sort": 238 ????????????????????}39 ????????????????],40 ????????????????"sort": 141 ????????????},42 ????????????{43 ????????????????"Code": "414530",44 ????????????????"Name": "新乡市",45 ????????????????"level": [46 ????????????????????{47 ????????????????????????"Code": "414530",48 ????????????????????????"Name": "卫滨区",49 ????????????????????????"sort": 150 ????????????????????},51 ????????????????????{52 ????????????????????????"Code": "414530",53 ????????????????????????"Name": "牧野区",54 ????????????????????????"sort": 255 ????????????????????}56 ????????????????],57 ????????????????"sort": 258 ????????????}59 ????????]60 ????}61 ],applyId=1711101632412997, wxOpenId=ogM9Bt0dTFX20JeMjMTFFqVAY2go, ext1=null, ext2=null, ext3=null, orderParam={}, wxModuleType=quliYhxkz, isFirst=true62 }
三,json字符串与json对象的区别
字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = ‘this is string‘;
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:‘100‘,Name:‘tmac‘,Hometown:‘usa‘}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };
四,json数据的应用
未完待续。。。。。。
json格式数据整理
原文地址:http://www.cnblogs.com/qingruihappy/p/7822652.html