ID:               45989
 Updated by:       scott...@php.net
 Reported By:      steven at acko dot net
-Status:           To be documented
+Status:           Closed
 Bug Type:         JSON related
 Operating System: Mac OS X
 PHP Version:      5.2.6


Previous Comments:
------------------------------------------------------------------------

[2009-07-27 03:44:38] scott...@php.net

This is in 5.3 now, you can use json_last_error() to check if a syntax
error occurred rather than reading the return value.

------------------------------------------------------------------------

[2008-12-23 11:24:10] bruno dot p dot reis at gmail dot com

I agree with kevin at metalaxe dot com, 

throwing an exception (may be even a InvalidArgumentException) on
malformed json would be a much more decent way to say the json is
invalid and would clarify a lot the behaviour. 

Other good thing would be another function just to check if a json is
valid or not.

------------------------------------------------------------------------

[2008-12-12 23:21:57] scott...@php.net

Applied the patch provided by magicaltux

------------------------------------------------------------------------

[2008-12-12 07:51:16] kevin at metalaxe dot com

The JSON spec states:
"
A JSON text is a sequence of tokens.  The set of tokens includes six
   structural characters, strings, numbers, and three literal names.

A JSON text is a serialized object or array.
"

So, in order to maintain compliance, PHP must also support
non-objects/arrays as input properly.

If I understand your patch correctly:

If the input is json_decode("null"); the output would be NULL (I saw no
test case for null input in the patch itself). We would have no way of
knowing a problem exists if one were to have an input of
json_decode('[');.

Can't this function throw an exception on failure? Failing that,could
we at least get a PHP warning? Otherwise it will be impossible to full
rely on this function in the case where null is the actual input...

------------------------------------------------------------------------

[2008-12-03 22:29:58] magical...@php.net

And here are patches against PHP_5_3 and HEAD:

http://ookoo.org/svn/snip/php_5_3-json-returntype-final-fix.patch

http://ookoo.org/svn/snip/php_head-json-returntype-final-fix.patch

Some tests now work on json on HEAD (less failure than what's currently
displayed on gcov.php.net) but still two fails. As those failures are
not within the scope of this bug (and are specific to HEAD) they be
fixed in different patches.

I believe that once this is commited to the CVS, this bug should be
marked as "To be documented". I also believe till wants to submit some
additional tests for those this issue...

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/45989

-- 
Edit this bug report at http://bugs.php.net/?id=45989&edit=1

Reply via email to