JSON
PHP Manual

Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

The following constants indicate the type of error returned by json_last_error(). They are all available as of PHP 5.3.0.

JSON_ERROR_NONE (integer)
No error has occurred.
JSON_ERROR_DEPTH (integer)
The maximum stack depth has been exceeded.
JSON_ERROR_CTRL_CHAR (integer)
Control character error, possibly incorrectly encoded.
JSON_ERROR_SYNTAX (integer)
Syntax error.
JSON_ERROR_UTF8 (integer)
Malformed UTF-8 characters, possibly incorrectly encoded. This constant is available as of PHP 5.3.1.

The following constants can be combined to form options for json_encode(). They are all available as of PHP 5.3.0.

JSON_HEX_TAG (integer)
All < and > are converted to \u003C and \u003E.
JSON_HEX_AMP (integer)
All &s are converted to \u0026.
JSON_HEX_APOS (integer)
All ' are converted to \u0027.
JSON_HEX_QUOT (integer)
All " are converted to \u0022.
JSON_FORCE_OBJECT (integer)
Outputs an object rather than an array when a non-associative array is used. Especially useful when the recipient of the output is expecting an object and the array is empty.

JSON
PHP Manual