Bug #52420 [NEW]: json_decode fails when underscores used in names
| From: | php at calendee dot com | Date: | Fri, 23 Jul 2010 20:13:25 +0000 |
| Subject: | Bug #52420 [NEW]: json_decode fails when underscores used in names | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-152692@lists.php.net to get a copy of this message | ||
From:
Operating system: Mac OS 10.6.3, RHEL 5
PHP version: 5.3.3
Package: JSON related
Bug Type: Bug
Bug description:json_decode fails when underscores used in names
Description:
------------
There appears to be a bug in json_decode(). In some cases, if there is an
underscore in one of the names in a JSON string, json_decode fails to
retrieve the
value. If the underscore is replaced with nothing, json_decode properly
retrieves
the value. However, some names with underscores work properly.
In Depth Explanation : http://calendee.com/json_decode.php
Test script:
---------------
URL : http://calendee.com/json_decode.txt
<?php
$string = '{"alarm_groups_id":"0","start":"2010-07-23
10:23:13","stop":"2010-07-23
12:23:13","model":"","pairs_id":"","alarms_alarm_num":"1044","stps_abbr":"dlls","alarms_lsn":"bm700145","slc":"","card":"","port":"","linksets_company":"","opc":"","dpc":"","aftpc":"","feclli":"","cdpa_addr":"","cdpa_ssn":"","cdpa_tt":"","cgpa_addr":"","cgpa_ssn":"","cgpa_tt":"","translated_pc":"","translated_ssn":"","class":"","cong_card":"","cong_port":"","cpc":"","xmt_lsn":"","rcv_lsn":"","sccp_mt":"","sio":"","alarms_alarm_num":"","stps_abbr":"","alarms_lsn":"","slc":"","card":"","port":"","linksets_company":"","opc":"","dpc":"","aftpc":"","feclli":"","cdpa_addr":"","cdpa_ssn":"","cdpa_tt":"","cgpa_addr":"","cgpa_ssn":"","cgpa_tt":"","translated_pc":"","translated_ssn":"","class":"","cong_card":"","cong_port":"","cpc":"","xmt_lsn":"","rcv_lsn":"","sccp_mt":"","sio":""}';
echo "\nDecode with Underscore in Name\n";
print_r( json_decode($string) );
echo json_last_error() ;
$string = '{"alarm_groups_id":"0","start":"2010-07-23
10:23:13","stop":"2010-07-23
12:23:13","model":"","pairs_id":"","alarmsalarmnum":"1044","stps_abbr":"dlls","alarmslsn":"bm700145","slc":"","card":"","port":"","linksets_company":"","opc":"","dpc":"","aftpc":"","feclli":"","cdpa_addr":"","cdpa_ssn":"","cdpa_tt":"","cgpa_addr":"","cgpa_ssn":"","cgpa_tt":"","translated_pc":"","translated_ssn":"","class":"","cong_card":"","cong_port":"","cpc":"","xmt_lsn":"","rcv_lsn":"","sccp_mt":"","sio":"","alarms_alarm_num":"","stps_abbr":"","alarms_lsn":"","slc":"","card":"","port":"","linksets_company":"","opc":"","dpc":"","aftpc":"","feclli":"","cdpa_addr":"","cdpa_ssn":"","cdpa_tt":"","cgpa_addr":"","cgpa_ssn":"","cgpa_tt":"","translated_pc":"","translated_ssn":"","class":"","cong_card":"","cong_port":"","cpc":"","xmt_lsn":"","rcv_lsn":"","sccp_mt":"","sio":""}';
echo "\nDecode without Underscore in Name\n";
print_r( json_decode($string) );
echo json_last_error() ;
?>
Expected result:
----------------
Decode with Underscore in Name
stdClass Object
(
[alarm_groups_id] => 0
[start] => 2010-07-23 10:23:13
[stop] => 2010-07-23 12:23:13
[model] =>
[pairs_id] =>
[alarms_alarm_num] => 1044
[stps_abbr] =>
[alarms_lsn] => bm700145
[slc] =>
[card] =>
[port] =>
[linksets_company] =>
[opc] =>
[dpc] =>
[aftpc] =>
[feclli] =>
[cdpa_addr] =>
[cdpa_ssn] =>
[cdpa_tt] =>
[cgpa_addr] =>
[cgpa_ssn] =>
[cgpa_tt] =>
[translated_pc] =>
[translated_ssn] =>
[class] =>
[cong_card] =>
[cong_port] =>
[cpc] =>
[xmt_lsn] =>
[rcv_lsn] =>
[sccp_mt] =>
[sio] =>
)
Decode without Underscore in Name
stdClass Object
(
[alarm_groups_id] => 0
[start] => 2010-07-23 10:23:13
[stop] => 2010-07-23 12:23:13
[model] =>
[pairs_id] =>
[alarmsalarmnum] => 1044
[stps_abbr] =>
[alarmslsn] => bm700145
[slc] =>
[card] =>
[port] =>
[linksets_company] =>
[opc] =>
[dpc] =>
[aftpc] =>
[feclli] =>
[cdpa_addr] =>
[cdpa_ssn] =>
[cdpa_tt] =>
[cgpa_addr] =>
[cgpa_ssn] =>
[cgpa_tt] =>
[translated_pc] =>
[translated_ssn] =>
[class] =>
[cong_card] =>
[cong_port] =>
[cpc] =>
[xmt_lsn] =>
[rcv_lsn] =>
[sccp_mt] =>
[sio] =>
[alarms_alarm_num] =>
[alarms_lsn] =>
)
Actual result:
--------------
Decode with Underscore in Name
stdClass Object
(
[alarm_groups_id] => 0
[start] => 2010-07-23 10:23:13
[stop] => 2010-07-23 12:23:13
[model] =>
[pairs_id] =>
[alarms_alarm_num] =>
[stps_abbr] =>
[alarms_lsn] =>
[slc] =>
[card] =>
[port] =>
[linksets_company] =>
[opc] =>
[dpc] =>
[aftpc] =>
[feclli] =>
[cdpa_addr] =>
[cdpa_ssn] =>
[cdpa_tt] =>
[cgpa_addr] =>
[cgpa_ssn] =>
[cgpa_tt] =>
[translated_pc] =>
[translated_ssn] =>
[class] =>
[cong_card] =>
[cong_port] =>
[cpc] =>
[xmt_lsn] =>
[rcv_lsn] =>
[sccp_mt] =>
[sio] =>
)
0
Decode without Underscore in Name
stdClass Object
(
[alarm_groups_id] => 0
[start] => 2010-07-23 10:23:13
[stop] => 2010-07-23 12:23:13
[model] =>
[pairs_id] =>
[alarmsalarmnum] => 1044
[stps_abbr] =>
[alarmslsn] => bm700145
[slc] =>
[card] =>
[port] =>
[linksets_company] =>
[opc] =>
[dpc] =>
[aftpc] =>
[feclli] =>
[cdpa_addr] =>
[cdpa_ssn] =>
[cdpa_tt] =>
[cgpa_addr] =>
[cgpa_ssn] =>
[cgpa_tt] =>
[translated_pc] =>
[translated_ssn] =>
[class] =>
[cong_card] =>
[cong_port] =>
[cpc] =>
[xmt_lsn] =>
[rcv_lsn] =>
[sccp_mt] =>
[sio] =>
[alarms_alarm_num] =>
[alarms_lsn] =>
)
--
Edit bug report at http://bugs.php.net/bug.php?id=52420&edit=1
--
Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=52420&r=trysnapshot52
Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=52420&r=trysnapshot53
Try a snapshot (trunk): http://bugs.php.net/fix.php?id=52420&r=trysnapshottrunk
Fixed in SVN: http://bugs.php.net/fix.php?id=52420&r=fixed
Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=52420&r=needdocs
Fixed in release: http://bugs.php.net/fix.php?id=52420&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=52420&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=52420&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=52420&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=52420&r=support
Expected behavior: http://bugs.php.net/fix.php?id=52420&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=52420&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=52420&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=52420&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=52420&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=52420&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=52420&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=52420&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=52420&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=52420&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=52420&r=mysqlcfg