php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #65616 json_decode now allows single quoted keys
Submitted: 2013-09-04 15:34 UTC Modified: 2013-09-04 16:04 UTC
From: glenjamin at gmail dot com Assigned: remi (profile)
Status: Closed Package: JSON related
PHP Version: 5.5.3 OS: CentOS
Private report: No CVE-ID: None
 [2013-09-04 15:34 UTC] glenjamin at gmail dot com
Description:
------------
It appears that json_decode is less strict in newer versions of PHP, and allows object keys to be single quoted.

Test script:
---------------
$ php -v
PHP 5.5.3 (cli) (built: Aug 21 2013 17:57:15)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

$ php -r "var_dump(json_decode(\"{'a':1}\"));"
class stdClass#1 (1) {
  public $a =>
  int(1)
}

Expected result:
----------------
json_decode should return NULL and make the error available through json_last_error()

Actual result:
--------------
The string is parsed into an object

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-09-04 15:58 UTC] nikic@php.net
-Assigned To: +Assigned To: remi
 [2013-09-04 15:58 UTC] nikic@php.net
Sounds like a json-c bug.
 [2013-09-04 16:03 UTC] remi@php.net
This is a json-c regression already fixed in upcoming version 1.3.2
 [2013-09-04 16:04 UTC] remi@php.net
-Status: Assigned +Status: Closed
 [2013-09-04 16:04 UTC] remi@php.net
The fix for this bug has been committed.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.

 For Windows:

http://windows.php.net/snapshots/
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 15:01:29 2024 UTC