From:
Operating system: ALL
PHP version: 5.3.3
Package: JSON related
Bug Type: Feature/Change Request
Bug description:json_encode can not encode as array when passing array with key
Description:
------------
Hi,
I am having one issues with json_encode function. Let me explain briefly.
I want the json represented string from PHP Array. When I pass the array
with not actually given 'key' value. json_encode return the encoded string
as array.
But after giving the array with associative array it is forcefully
generated encoded as an object.
In short :
I can forcefully get the output of json_encode as an Object (using
JSON_FORCE_OBJECT as 2nd Argument))
But can not forcefully get the output of json_encode as an Array (!!!?)
I really need josn_encode as an array in my functionality no matter key is
given or not. Like added the JSON_FORCE_OBJECT there must be something for
array.
ignore keys should be pass in optional argument.
Please do not say this is actual behavior of json. I need this solution in
anyhow.
Test script:
---------------
<?php
/*I am giving array with no keys or numeric start with 0,2,3,4....with
break sequence*/
$array = array("0" => "value1", "1" => "value2", "2" => "value3", "3" =>
"value4");
echo "Array output as array: ", json_encode($array);
echo "<br />";
/*I am giving array with no keys or numeric start with 0,2,3,4....with
break sequence*/
$array = array("0" => "value1", "3" => "value2", "3" => "value3", "6" =>
"value4");
echo "Array output should be array: ", json_encode($array); // Need output
as an Array here shows as an Object forcefully
Expected result:
----------------
//Expected result:
Array output as array : ["value1","value2","value3","value4"]
Array output should be array: ["value1","value2","value3","value4"]
Actual result:
--------------
//Actual result:
Array output as array: ["value1","value2","value3","value4"]
Array output should be array: {"0":"value1","3":"value3","6":"value4"}
--
Edit bug report at http://bugs.php.net/bug.php?id=53201&edit=1
--
Try a snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=53201&r=trysnapshot52
Try a snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=53201&r=trysnapshot53
Try a snapshot (trunk):
http://bugs.php.net/fix.php?id=53201&r=trysnapshottrunk
Fixed in SVN:
http://bugs.php.net/fix.php?id=53201&r=fixed
Fixed in SVN and need be documented:
http://bugs.php.net/fix.php?id=53201&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=53201&r=alreadyfixed
Need backtrace:
http://bugs.php.net/fix.php?id=53201&r=needtrace
Need Reproduce Script:
http://bugs.php.net/fix.php?id=53201&r=needscript
Try newer version:
http://bugs.php.net/fix.php?id=53201&r=oldversion
Not developer issue:
http://bugs.php.net/fix.php?id=53201&r=support
Expected behavior:
http://bugs.php.net/fix.php?id=53201&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=53201&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=53201&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=53201&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=53201&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=53201&r=dst
IIS Stability:
http://bugs.php.net/fix.php?id=53201&r=isapi
Install GNU Sed:
http://bugs.php.net/fix.php?id=53201&r=gnused
Floating point limitations:
http://bugs.php.net/fix.php?id=53201&r=float
No Zend Extensions:
http://bugs.php.net/fix.php?id=53201&r=nozend
MySQL Configuration Error:
http://bugs.php.net/fix.php?id=53201&r=mysqlcfg