1:首先使用工具校验一下你的json串是不是正确。推荐网站http://www.bejson.com/
2:这里我们以下列数据为例
[ { "name": "anzhen", "longitude": 119, "latitude": 70, "errorName": "bridge.pressure", "level": 5.1205745, "content": "bridge.pressure危险等级为:5.1205745" }, { "name": "mingguan", "longitude": 118, "latitude": 73, "errorName": "pipe.dampness", "level": 1.4216998, "content": "pipe.dampness危险等级为:1.4216998" }, { "name": "tiananmen", "longitude": 120, "latitude": 80, "errorName": "pipe.temperature", "level": 3.5, "content": "pipe.temperature危险等级为:3.5" }, { "name": "tiananmen", "longitude": 120, "latitude": 80, "errorName": "bridge.wind", "level": 3.3333333, "content": "bridge.wind危险等级为:3.3333333" }, { "name": "shanghai", "longitude": 230, "latitude": 90, "errorName": "bridge.wind", "level": 4.015443, "content": "bridge.wind危险等级为:4.015443" } ]
3:
function btn_refresh_onclick(){ $.get("info",null,function(data){ data=eval(data); var len=data.length; // alert(len); for(var i=0;i<len;i++){ var loc_lat=0; var loc_log=0; var des=""; var flag=0; var level=0; $.each(data[i],function(key,val){ if(key=="name"){ des="name: "+val; flag++; } if(key=="longitude"){ loc_log=val; } if(key=="latitude"){ loc_lat=val; } if(key=="content"){ des=des+"\ncontent: "+val; flag++; } if(key=="level"){ level=val; } if(flag==2&&loc_log!=0&&loc_lat.length!=0&&level!=0){ show_point_in_map(loc_log,loc_lat,des,level); //alert("经度:"+loc_log+" 纬度:"+loc_lat+"\n内容:"+des); } });//each }//for });//get }//btn_on_click
以上是解析的代码。首先使用$.get()方法,在回调函数里面对返回的数据进行解析,首先因为我们的json数据是字符串的格式,先要使用eval()函数转换一下。这一步很重要。然后获得data的长度。使用$.each()对每一条json数据进行解析。对照json数据的内容和以上的实例应该很好明白,要是数据有多层的话,反复的使用$.each()方法就可以了。