无法解析从PHP返回的JSON

时间:2015-11-29 17:51:21

标签: javascript php json

在PHP中,我有一个JSON字符串数组,我需要通过AJAX调用返回JavaScript。如果我在Array中只有一个元素,我可以在响应上调用JSON.parse()。

Ex(PHP):

$data = [];
array_push($data, '{"Date" : "11/11/2015",  "Number" : "123", "Status" : "Order Received"}');
echo json_encode($data);

Ex(JavaScript):

data = JSON.parse(data);

产生以下内容,我可以进一步处理和显示:

["{"Date" : "11/11/2015",  "Number" : "123", "Status" : "Order Received"}"]

但是,如果我将两个元素推送到数组:

$data = [];
array_push($data, '{"Date" : "11/11/2015",  "Number" : "123", "Status" : "Order Received"}');
array_push($data, '{"Date" : "12/12/2015",  "Number" : "456", "Status" : "Processing"}');
echo json_encode($data);

我在响应中得到以下内容:

["{"Date" : "11/11/2015",  "Number" : "123", "Status" : "Order Received"}", 
 "{"Date" : "12/12/2015",  "Number" : "456", "Status" : "Processing"}"]

当我尝试使用JSON.parse()时,我会用逗号分隔两个元素的双引号。

}", "{

我已经尝试通过在发送响应之前对Array / String进行编码/解码来解决这个问题,但没有运气。我还尝试通过调用JSON.stringify()来尝试重新格式化响应,在JS中解决这个问题,但也没有运气。

想知道是否有人知道要使用的正确编码/解码/解析/字符串化模式。

感谢您的任何意见!

1 个答案:

答案 0 :(得分:3)

在使用array转换为JSON之前,您必须正确填充PHP

$data = array();
$data = [];
array_push($data, 
           array( "Date" => "11/11/2015",  
                  "Number" => "123", 
                  "Status" => "Order Received"
                ));

echo json_encode($data);

这将为您提供以下输出:

[{"Date":"11\/11\/2015","Number":"123","Status":"Order Received"}]