PHP json_encode作为数组字符串返回,但在JavaScript中未正确转换为数组
我发出$.post请求以提交数据并返回无效数据。以下是$.post请求: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
$('#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字符串,不是数组。您需要对其进行解析。