views:

261

answers:

2

Long story short, client's hosting is using php 5.2.5 and i desperately need to use the JSON_FORCE_OBJECT option with json_encode() that came with 5.3. Does anyone know some equivalent for that purpose? Point it out please.

A: 

You can use the PHP pear package to support json_encode on older versions of PHP. It seems to support encoded objects.

Checkout http://pear.php.net/package/Services_JSON/

Haris
+7  A: 

Casting as an object before encoding worked for me on 5.2.5:

$array = array(1,2,3);

echo json_encode($array);
// [0,1,2]
echo json_encode((object)$array);
// {"0":1,"1":2,"2":3}

And using PHP 5.3 yields the same output:

echo json_encode($array);
// [0,1,2]
echo json_encode($array, JSON_FORCE_OBJECT);
// {"0":1,"1":2,"2":3}

You might also try this solution from another thread. Not sure what your exact use-case is.

Typeoneerror
This should be documented on PHP json_encode function page.
Haris
Thank you. Casting should do the trick!
Zlatev