$.parseJson()定义和⽤法
$.parseJSON() 函数⽤于将符合标准格式的的JSON字符串转为与之对应的JavaScript对象。
例⼦:
这⾥⾸先给出JSON字符串集,字符串集如下:
var data="
{
root:
[
{name:'1',value:'0'},
{name:'6101',value:'西安市'},
{name:'6102',value:'铜川市'},
{name:'6103',value:'宝鸡市'},
{name:'6104',value:'咸阳市'},
{name:'6105',value:'渭南市'},
{name:'6106',value:'延安市'},
{name:'6107',value:'汉中市'},
{name:'6108',value:'榆林市'},
{name:'6109',value:'安康市'},
{name:'6110',value:'商洛市'}
]
}";
注意:字符串的链接在⼀⾏或者⽤+链接起来
这⾥以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种⽅式获取到的结果处理⽅式。
1.eval()
对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串⽅式接受,那么需要做⼀次对象化处理,⽅式不是太⿇烦,就是将该字符串放于eval()中执⾏⼀次。这种⽅式也适合以普通javascipt⽅式获取json对象,以下举例说明:
var dataObj=eval("("+data+")");//转换为json对象
length);//输出root的⼦对象数量
$.,fucntion(idx,item){
if(idx==0){
return true;
}
/
/输出每个root⼦对象的名称和值
alert("name:"+item.name+",value:"+item.value);
})
注:对于⼀般的js⽣成json对象,只需要将$.each()⽅法替换为for语句即可,其他不变。
2.$.getJSON
对于服务器返回的JSON字符串,如果jquery异步请求将type(⼀般为这个配置属性)设为“json”,或者利⽤$.getJSON()⽅法获得服务器返回,那么就不需要eval()⽅法了,因为这时候得到的结果已经是json对象了,只需直接调⽤该对象即可,这⾥以$.getJSON⽅法为例说明数据处理⽅法:
$.getJSON("gaoyusi.blog.163/",{param:"gaoyusi"},function(data){
//此处返回的data已经是json对象
//以下其他操作同第⼀种情况
$.,function(idx,item){
if(idx==0){
return true;//同countinue,返回false同break
}
alert("name:"+item.name+",value:"+item.value);
});
jquery字符串截取
});
这⾥特别需要注意的是⽅式1中的eval()⽅法是动态执⾏其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采⽤⼀些规避了eval()的第三⽅客户端脚本库,⽐如就提供了⼀个不超过3k的脚本库。
3jQuery解析Json对象:
jQuery提供了另⼀种⽅法“parseJSON”,这需要⼀个标准的JSON字符串,并返回⽣成的JavaScript对象。让我们来看
看语法:
data = $.parseJSON(string);
看看它是如何运⽤的到实际开发中的:
代码如下:
$.ajax({
  url: dataURL, success: function(results) {
    var parsedJson = jQuery.parseJSON(results);
    alert(parsedJson.name);
  }
});

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。