PHP json_encode作为数组字符串返回,但在JavaScript中未正确转换为数组

PHP json_encode作为数组字符串返回,但在JavaScript中未正确转换为数组,javascript,php,arrays,json,Javascript,Php,Arrays,Json,我发出$.post请求以提交数据并返回无效数据。以下是$.post请求: $('#submitAll').click(function(){ $.post("php/entries/submitAndReload.php", {array : dataObject.dataArray}, function(data){ alert(data); // alerts: "[[“0”, “0”,””,””, “0”, “0”, “0”, “0”,”N

我发出$.post请求以提交数据并返回无效数据。以下是$.post请求:

    $('#submitAll').click(function(){
        $.post("php/entries/submitAndReload.php", {array : dataObject.dataArray}, function(data){

            alert(data); // alerts: "[[“0”, “0”,””,””, “0”, “0”, “0”, “0”,”No Style”]]"
            dataObject.dataArray = data;

            $.post("php/entries/stageArea.php", {array : dataObject.dataArray}, function(data){
                $('#stageArea').html(data);
            });
        });
    });
dataObject.dataArray
是一个双数组,
alert(data)
为后续的$.post请求发出正确格式的警报,但是第二个$.post请求的输出看起来像是我在以下数组中传递的:
[[“[]”]
。第一个字段获得一个
“[”
,没有其他字段获得数据

我不知道这里发生了什么,也不知道如何正确地将返回的
数据存储到
dataObject.dataArray

这是怎么回事?

纠正这一行:

dataObject.dataArray = data;
为此:

dataObject.dataArray = JSON.parse( data );

您需要解析JSON,直到解析它只是一个字符串。

dataType
参数添加到
$。post

当设置为
'json'
jQuery知道如何将它从json字符串解析为object/array

$.post(url, postData, function(data){
     // handling code
     alert($.type(data)); //"array"

},'json');
若您在服务器上设置了正确的内容类型头,也会有所帮助


引用:

数据
是一个JSON字符串,不是数组。您需要对其进行解析。