php-src/ext/json
Nikita Popov 84fe2cc890 Improve json_encode error handling
json_encode() now returns bool(false) for all possible errors, throws the
respective warning and also sets the respective json_last_error() error
code. Three new error codes have been added:

  * JSON_ERROR_RECURSION
  * JSON_ERROR_INF_OR_NAN
  * JSON_ERROR_UNSUPPORTED_TYPE

To get a partial JSON output instead of bool(false) the option
JSON_PARTIAL_OUTPUT_ON_ERROR can be specified. In this case the invalid
segments will be replaced either by null (for recursion, unsupported type
and invalid JSON) or 0 (for Inf and NaN).

The warning for invalid UTF-8 stays intact and is thrown also with
display_errors = On. If this behavior is undesired this can be remedied
later.
2012-06-23 20:51:52 +02:00
..
tests Improve json_encode error handling 2012-06-23 20:51:52 +02:00
config.m4 The json header should be installed so other exts can use it 2009-06-23 13:09:34 +00:00
config.w32 MFH: enable by default 2006-07-22 15:33:02 +00:00
CREDITS Rebuild credits, was missed in previous RC 2009-04-02 09:18:00 +00:00
JSON_parser.c Fix Bug #53963, error code isn't always set in certain error cases. 2011-02-09 08:05:00 +00:00
JSON_parser.h Improve json_encode error handling 2012-06-23 20:51:52 +02:00
json.c Improve json_encode error handling 2012-06-23 20:51:52 +02:00
json.dsp
package.xml
php_json.h Fix bug #61537 (json_encode() incorrectly truncates/discards information) and 2012-04-11 08:24:38 +08:00
README
utf8_decode.c MFH Fix bug #46944 - UTF-8 characters outside the BMP aren't encoded correctly. 2009-01-02 03:02:22 +00:00
utf8_decode.h
utf8_to_utf16.c MFH Fix bug #46944 - UTF-8 characters outside the BMP aren't encoded correctly. 2009-01-02 03:02:22 +00:00
utf8_to_utf16.h

json 1.2.0
==========

This extension implements the JavaScript Object Notation (JSON)
data-interchange format as specified in [0].

Two functions are implemented: encoding and decoding. The decoding
is handled by a parser based on JSON_checker[1] by Douglas Crockford.


Function overview
-----------------

    string json_encode ( mixed value )

json_encode returns a string containing the JSON representation of value.
value can be any type except a resource.

    mixed json_decode ( string json, [bool assoc] )

json_decode takes a JSON string and converts it into a PHP variable.
When assoc is given, and evaluates to TRUE, json_decode() will return
any objects as associative arrays.


Example usage
-------------

$arr = array("a"=>1,"b"=>2,"c"=>3,"d"=>4,"e"=>5);
echo json_encode($arr);

---> {"a":1,"b":2,"c":3,"d":4,"e":5}

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));

---> object(stdClass)#1 (5) {
        ["a"]=>
        int(1)
        ["b"]=>
        int(2)
        ["c"]=>
        int(3)
        ["d"]=>
        int(4)
        ["e"]=>
        int(5)
     }

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json, true));

---> array(5) {
        ["a"]=>
        int(1)
        ["b"]=>
        int(2)
        ["c"]=>
        int(3)
        ["d"]=>
        int(4)
        ["e"]=>
        int(5)
     }


Authors
-------

Omar Kilani <omar@php.net>


---

[0] http://www.crockford.com/JSON/draft-jsonorg-json-00.txt
[1] http://www.crockford.com/JSON/JSON_checker/