双重编码php多维数组发送到javascript

时间:2012-04-04 17:42:26

标签: php javascript json multidimensional-array

这不是一个问题,因为我已经解决了这个问题,但是我坚持修复,我想知道为什么你需要在php中将json_encode加倍,当你将它返回到javascript中时以ajax为例。

我的数组

$jsonData = array('foo', 'bar');
$jsonData['catOne'][] = array('foo two', 'bar two');

PHP

return json_encode(json_encode($jsonData));

1 个答案:

答案 0 :(得分:3)

你不需要。 json_encode遍历最深的元素,json将被完美编码:

$arr = array(
    1 => array(5,6,7),
    2 => array(4,3,2),
);

var_dump(json_encode($arr));

输出是:

string(25) "{"1":[5,6,7],"2":[4,3,2]}"

如果您尝试:

var_dump(json_encode(json_encode($arr)));

输出将是:

string(31) ""{\"1\":[5,6,7],\"2\":[4,3,2]}""

看到区别?