JSON(javaScript Object Notation)是存储和交换文本信息的语法。类似 XML。但JSON 比 XML 更小、更快,更易解析。
从最简单格式的JSON:
<span style="font-size:18px;">data1={
"id":"10001",
"name":"test"
}</span>
到复杂的多层次的JSON:
<span style="font-size:18px;">data2=[
{
"id":"128",
"pId":"1",
"name":"在建招拍挂地块",
"url":"http://mapapi.xmtfj.gov.cn/RemoteRest/services/ZJZPGDK/MapServer/0",
"mapQueryUrl":"",
"autoCmpData":"",
"mapType":"2",
"mapLegend":"",
"tokenKey":"",
"totalCount":"0",
"idField":"",
"nameField":"",
"fieldConfig":[{"id":"1","fieldEnName":"ZPGTD_P.OBJECTID","fieldCnName":"OBJECTID","isEditable":"true","isShow":"true"},{"id":"2","fieldEnName":" ZPGTD.DKBH","fieldCnName":"地块编号","isEditable":"true","isShow":"true"},{"id":"3","fieldEnName":"ZPGTD.QY","fieldCnName":"区域","isEditable":"true","isShow":"true"},{"id":"4","fieldEnName":"ZPGTD.LB","fieldCnName":"类别","isEditable":"true","isShow":"true"},{"id":"5","fieldEnName":"ZPGTD.DKYT","fieldCnName":"地块用途","isEditable":"true","isShow":"true"},{"id":"6","fieldEnName":"ZPGTD.TDWZ","fieldCnName":"土地位置","isEditable":"true","isShow":"true"},{"id":"7","fieldEnName":"ZPGTD.CJSJ","fieldCnName":"成交时间","isEditable":"true","isShow":"true"},{"id":"8","fieldEnName":"ZPGTD.TDCJMJ","fieldCnName":"土地成交面积","isEditable":"true","isShow":"true"},{"id":"9","fieldEnName":"ZPGTD.JZCJMJ","fieldCnName":"建筑成交面积","isEditable":"true","isShow":"true"},{"id":"10","fieldEnName":"ZPGTD.LMJ","fieldCnName":"楼面价","isEditable":"true","isShow":"true"},{"id":"11","fieldEnName":"ZPGTD.SRR","fieldCnName":"受让人","isEditable":"true","isShow":"true"}],
"sqlExp":"",
"thirdAPI":"",
"layerRender":{"clusterPara":{"distance":"0","labelColor":"[255, 0, 0, 255]"},"clusterSymbol":[],"nonClusterSymbol":{"pic":"BluePin1LargeB.png","height":"32","width":"32","offsetx":"0","offsety":"15"}},
"attachmentInfo":{},
"isEditable":"0",
"isCluster":"0",
},
{
"id":"102",
"pId":"1",
"name":"厦门市招拍挂专题图",
"url":"http://192.168.1.110:6080/arcgis/rest/services/YHLP2/FeatureServer",
"mapQueryUrl":"http://192.168.1.110:6080/arcgis/rest/services/YHLP2/FeatureServer/0",
"autoCmpData":"",
"mapType":"0",
"mapLegend":"",
"tokenKey":"qqqqqqqq",
"totalCount":"0",
"idField":"",
"nameField":"PTMC",
"fieldConfig":[],
"beginLevel":"1",
"endLevel":"20",
}</span>
JSON的广泛使用得益于其独立于语言,轻量级,又具有自述性,JavaScript的崛起也带动着JSON,毕竟JSON格式的数据传输还是很方便的
JSON数据的使用
<span style="font-size:18px;"><script>
var JSONObject= {
"id":"10001",
"name":"test"
};
document.getElementById("id").innerHTML=JSONObject.id;
document.getElementById("name").innerHTML=JSONObject.name;
</script>
</span>
如上例子,JSON在Javascript可以转化为Object使用,且方便解析
在JSON的数据中,“{}”代表对象,“[]”代表数组
如代码段2便是数组中有对象,对象中有数组,在对象.....
在JavaScript中解析JSON字符串时,可以使用eval(),和JSONPrase();就个人而言,还是倾向于使用JSONPrase();
eval()用于简单的对象,
<span style="font-size:18px;">var d=eval("("+data1+")");
d.id;//10001
d.name;//test</span>
JSONPrase():
<span style="font-size:18px;">var d2=JSONPrase(data2);
//将d2解析为数组,数组保存的是对象
d2[0].id;//128;
d2[1].id;//102;
//复杂情况
var filedConfig=JSONPrase(d2[0].filedConfig);//为数组
filedConfig[0].id;//1
//......
</span>