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

Reply via email to