一,json的两种数据结构
1.1,对象
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。
{ key1:value1, key2:value2, ... }
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,二级-----对象
{ "Code": "414500", "Name": "二七区", "sort": 1 }
json格式的数据在升级是一个对象,这种对象的格式就类似于这种的,注意最后一个没有,号
2.3,三级-----数组
[ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ]
json格式在对象的基础上会把一个个的对象放到数组当中成为一个数组
2.4,四级-----对象
{ "level": [ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ] }
假如现在再把这个数据赋给一个对象,那么它现在又从数据变成对象了,level相当于key,而整个数组就是value
2.5,五级-----对象
{ "Code": "414500", "Name": "郑州市", "level": [ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ], "sort": 1 }
,现在是往已有的对象里面添加新的数据,是对对象的补充。
2.6,六级-----数组
[ { "Code": "414500", "Name": "郑州市", "level": [ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ], "sort": 1 }, { "Code": "414530", "Name": "新乡市", "level": [ { "Code": "414530", "Name": "卫滨区", "sort": 1 }, { "Code": "414530", "Name": "牧野区", "sort": 2 } ], "sort": 2 } ]
现在在把这个对象当成数组的0号元素放到一个数据中去。
2.7,七级-----对象
{ "level": [ { "Code": "414500", "Name": "郑州市", "level": [ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ], "sort": 1 }, { "Code": "414530", "Name": "新乡市", "level": [ { "Code": "414530", "Name": "卫滨区", "sort": 1 }, { "Code": "414530", "Name": "牧野区", "sort": 2 } ], "sort": 2 } ] }
(第三步很像)
假如现在再把这个数据赋给一个对象,那么它现在又从数据变成对象了,level相当于key,而整个数组就是value
2.8,八级-----对象
{ "Code": "410000", "Name": "河南省", "level": [ { "Code": "414500", "Name": "郑州市", "level": [ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ], "sort": 1 }, { "Code": "414530", "Name": "新乡市", "level": [ { "Code": "414530", "Name": "卫滨区", "sort": 1 }, { "Code": "414530", "Name": "牧野区", "sort": 2 } ], "sort": 2 } ] }
第四步很像
2.9,九级-----数组
[ { "Code": "940000", "Name": "澳门特别行政区", "level": [ { "Code": "940000", "Name": "澳门特别行政区", "level": [ { "Code": "940000", "Name": "澳门特别行政区", "sort": 1 } ], "sort": 1 } ] }, { "Code": "410000", "Name": "河南省", "level": [ { "Code": "414500", "Name": "郑州市", "level": [ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ], "sort": 1 }, { "Code": "414530", "Name": "新乡市", "level": [ { "Code": "414530", "Name": "卫滨区", "sort": 1 }, { "Code": "414530", "Name": "牧野区", "sort": 2 } ], "sort": 2 } ] } ]
2.10,10级-----把数组赋给对象(与前面的有点不一样),注意这个不是json格式的数据
{cityData= [ { "Code": "940000", "Name": "澳门特别行政区", "level": [ { "Code": "940000", "Name": "澳门特别行政区", "level": [ { "Code": "940000", "Name": "澳门特别行政区", "sort": 1 } ], "sort": 1 } ] }, { "Code": "410000", "Name": "河南省", "level": [ { "Code": "414500", "Name": "郑州市", "level": [ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ], "sort": 1 }, { "Code": "414530", "Name": "新乡市", "level": [ { "Code": "414530", "Name": "卫滨区", "sort": 1 }, { "Code": "414530", "Name": "牧野区", "sort": 2 } ], "sort": 2 } ] } ] }
这个对象当中可以添加非json格式的数据,如下
2.11,11级-----对象
{cityData= [ { "Code": "940000", "Name": "澳门特别行政区", "level": [ { "Code": "940000", "Name": "澳门特别行政区", "level": [ { "Code": "940000", "Name": "澳门特别行政区", "sort": 1 } ], "sort": 1 } ] }, { "Code": "410000", "Name": "河南省", "level": [ { "Code": "414500", "Name": "郑州市", "level": [ { "Code": "414500", "Name": "二七区", "sort": 1 }, { "Code": "414500", "Name": "中原区", "sort": 2 } ], "sort": 1 }, { "Code": "414530", "Name": "新乡市", "level": [ { "Code": "414530", "Name": "卫滨区", "sort": 1 }, { "Code": "414530", "Name": "牧野区", "sort": 2 } ], "sort": 2 } ] } ],applyId=1711101632412997, wxOpenId=ogM9Bt0dTFX20JeMjMTFFqVAY2go, ext1=null, ext2=null, ext3=null, orderParam={}, wxModuleType=quliYhxkz, isFirst=true }
三,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数据的应用
未完待续。。。。。。