2012-04-04 37 views
0

它不是一个问题,因为我已经解决了这个问题,但我卡住了修复,我想知道为什么你需要在PHP中多加json_encode multidimenail数组例如,当你在ajax调用中将它返回给javascript时。双重编码PHP多维数组发送到JavaScript

我的数组

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

PHP

return json_encode(json_encode($jsonData)); 
+0

呃...这是不需要的。 – kirilloid 2012-04-04 17:44:36

+0

您能发布单编码和双编码结果的输出吗? – jprofitt 2012-04-04 17:44:58

+0

你不必... – knittl 2012-04-04 17:45:38

回答

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]}"" 

看到区别?

+0

以及当我做钛手机的HTTP请求,并使用单个json_encode它不会加载,但如果我使用双倍它会 – 2012-04-04 17:51:43