Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象数组未被解析为本机对象的javascript数组?_Javascript_Jquery_Ajax_Json_Parsing - Fatal编程技术网

对象数组未被解析为本机对象的javascript数组?

对象数组未被解析为本机对象的javascript数组?,javascript,jquery,ajax,json,parsing,Javascript,Jquery,Ajax,Json,Parsing,我正在从服务器接收以下数据 "[{\"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\

我正在从服务器接收以下数据

"[{\"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 
    }
    });

在ajaxSetup方法中设置数据类型时,后面有一个逗号:

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"}]
不要逃避
。它们是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"}]

感谢您指出这一点,但在复制和粘贴过程中这是一个错误。@jason bournem,因此服务器发送JSON,如我的回答所示?如果是这种情况,它应该可以工作,而不需要调用任何$.parseJSON。同时确保没有周围的
@jason:您使用的是什么版本的jQuery?@jason-外部引号将其变成字符串,而字符串确实需要内部引号“quoted”。在结果字符串上使用
parseJSON
,将字符串解压为对象。您只需要返回对象本身。我怀疑您在服务器端双重引用了引号
\\”
,并以
“\”开头字符串[…
。去掉开头/结尾的引号,不要在服务器上重复引用,你会没事的。@tvanfosson:你应该发布你的答案。我想你是对的。OP在服务器端对它进行了两次编码。我在控制台中用
JSON.stringify(JSON.stringify([{“角色id:”1“,…]);