Bug #66707 [Opn]: big int conversion on json_encode/json_decode
| From: | sergey dot shilko at gmail dot com | Date: | Thu, 13 Feb 2014 11:12:18 +0000 |
| Subject: | Bug #66707 [Opn]: big int conversion on json_encode/json_decode | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-184282@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=66707&edit=1
ID: 66707
User updated by: sergey dot shilko at gmail dot com
Reported by: sergey dot shilko at gmail dot com
-Summary: Int to float conversion on json_encode
+Summary: big int conversion on json_encode/json_decode
Status: Open
Type: Bug
Package: JSON related
Operating System: Linux
-PHP Version: 5.5.9
+PHP Version: 5.5.7
Block user comment: N
Private report: N
New Comment:
#$decoded = json_decode($encoded, false, 512, JSON_BIGINT_AS_STRING);
Makes no difference.
Test script output:
array(2) {
[0]=>
float(4.8572380745623E+19)
[1]=>
string(20) "48572380745623087456"
}
array(2) {
[0]=>
float(4.8572380745623E+19)
[1]=>
string(20) "48572380745623087456"
}
Broken
Previous Comments:
------------------------------------------------------------------------
[2014-02-13 11:07:40] sergey dot shilko at gmail dot com
Description:
------------
http://php.net/json_encode
http://php.net/json_decode
json_decode(json_encode(A)) != A
json_encode + json_decode breaks large integers.
Test script:
---------------
<?php
$facebookIds = array(48572380745623087456, '48572380745623087456');
$encoded = json_encode($facebookIds);
$decoded = json_decode($encoded);
var_dump($facebookIds);
var_dump($decoded);
if ($facebookIds != $decoded) {
echo "\nBroken\n";
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=66707&edit=1