在原生ajax中解析json格式的数据我们需要用到JSON.parse() 方法
JSON.parse(xhr.responseText)
使用 eval 方法
var jsonDate = '{ "name":"周星驰","age":23 }'
var jsonObj = eval( '(' + jsonDate + ')' );
eval方法和JSON.parse方法有一些区别
var jsonDate = '{ "name":alert("111"),"age":2 }'
var jsonObj = eval( '(' + jsonDate + ')' ); // eval();方法
console.log( jsonObj.age ); //会先执行“alert”输出“hello” 然后才输出 23
总结:“eval();”方法解析的时候不会去判断字符串是否合法,而且json对象中的js方法也会被执行,这是非常危险的; 而“JSON.parse();”方法的优点就不用多说了,推荐此方法。
在jquery中我们可以直接定义返回值的类型(dataType)的值为json 这样他会自己把得到的数据解释成json数据
$.ajax({
url:"",
dataType:"json"
});