我从服务器
收到以下数据"[{\"role_id\":\"1\",\"name\":\"administrator\",\"created_by_user_id\":\"2\",\"time_created_on\":null,\"is_user_based\":\"0\"},{\"role_id\":\"2\",\"name\":\"manager\",\"created_by_user_id\":null,\"time_created_on\":null,\"is_user_based\":\"0\"}]"
这只是两个对象的数组。即使将'dataType'设置为json后,我在成功回调函数中没有接收到本机javascript数组,但如果我使用
$.ajaxSetup({
url:'/public/admin/role/list',
dataType:'json'
});
$.ajax({
success:function(data) {
alert(data[0].name); // alert box pop up as 'undefined '
var data = $.parseJSON(data);
alert(data[0].name) ; //works
}
});
答案 0 :(得分:2)
不要逃避"
。它们是JSON解析所必需的。
[{"role_id":"1","name":"administrator","created_by_user_id":"2","time_created_on":null,"is_user_based":"0"},{"role_id":"2","name":"manager","created_by_user_id":null,"time_created_on":null,"is_user_based":"0"}]
答案 1 :(得分:0)
在ajaxSetup方法中设置dataType时有一个逗号逗号:
dataType:'json',
^
此外,我希望您在此处显示的JSON中的\
不是服务器实际响应的一部分。响应应如下所示:
[{"role_id":"1","name":"administrator","created_by_user_id":"2","time_created_on":null,"is_user_based":"0"},{"role_id":"2","name":"manager","created_by_user_id":null,"time_created_on":null,"is_user_based":"0"}]