double encode php multidimensional array to send to javascript

Go To StackoverFlow.com

0

It is not so much as a problem as I have fixed the issue but I am stuck on the fix, I would like to know why you need to double json_encode a multidimenail array in php when you are returning it to javascript in an ajax call for example.

My Array

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

PHP

return json_encode(json_encode($jsonData));
2012-04-04 17:42
by Oliver Bayes-Shelton
Erm... it is not needed - kirilloid 2012-04-04 17:44
Would you be able to post the output of a single- and double-encoded result - jprofitt 2012-04-04 17:44
You don't have to - knittl 2012-04-04 17:45
well when I do a http request from titanium mobile and use single json_encode it won't load but if I use double it wil - Oliver Bayes-Shelton 2012-04-04 17:51


3

You don't need to. The json_encode goes through the deepest elements and the json will be perfectly encoded:

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

var_dump(json_encode($arr));

The output for that is:

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

If you try:

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

The output will be:

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

See the difference?

2012-04-04 17:45
by Daniel Ribeiro
well when I do a http request from titanium mobile and use single json_encode it won't load but if I use double it wil - Oliver Bayes-Shelton 2012-04-04 17:51
Ads