&reftitle.constants; &extension.constants; The following constants indicate the type of error returned by json_last_error. JSON_ERROR_NONE (integer) No error has occurred. Available since PHP 5.3.0. JSON_ERROR_DEPTH (integer) The maximum stack depth has been exceeded. Available since PHP 5.3.0. JSON_ERROR_STATE_MISMATCH (integer) Occurs with underflow or with the modes mismatch. Available since PHP 5.3.0. JSON_ERROR_CTRL_CHAR (integer) Control character error, possibly incorrectly encoded. Available since PHP 5.3.0. JSON_ERROR_SYNTAX (integer) Syntax error. Available since PHP 5.3.0. JSON_ERROR_UTF8 (integer) Malformed UTF-8 characters, possibly incorrectly encoded. This constant is available as of PHP 5.3.3. JSON_ERROR_RECURSION (integer) The object or array passed to json_encode include recursive references and cannot be encoded. If the JSON_PARTIAL_OUTPUT_ON_ERROR option was given, &null; will be encoded in the place of the recursive reference. This constant is available as of PHP 5.5.0. JSON_ERROR_INF_OR_NAN (integer) The value passed to json_encode includes either NAN or INF. If the JSON_PARTIAL_OUTPUT_ON_ERROR option was given, 0 will be encoded in the place of these special numbers. This constant is available as of PHP 5.5.0. JSON_ERROR_UNSUPPORTED_TYPE (integer) A value of an unsupported type was given to json_encode, such as a resource. If the JSON_PARTIAL_OUTPUT_ON_ERROR option was given, &null; will be encoded in the place of the unsupported value. This constant is available as of PHP 5.5.0. The following constants can be combined to form options for json_encode. JSON_HEX_TAG (integer) All < and > are converted to \u003C and \u003E. Available since PHP 5.3.0. JSON_HEX_AMP (integer) All &s are converted to \u0026. Available since PHP 5.3.0. JSON_HEX_APOS (integer) All ' are converted to \u0027. Available since PHP 5.3.0. JSON_HEX_QUOT (integer) All " are converted to \u0022. Available since PHP 5.3.0. 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. Available since PHP 5.3.0. JSON_NUMERIC_CHECK (integer) Encodes numeric strings as numbers. Available since PHP 5.3.3. JSON_BIGINT_AS_STRING (integer) Encodes large integers as their original string value. Available since PHP 5.4.0. JSON_PRETTY_PRINT (integer) Use whitespace in returned data to format it. Available since PHP 5.4.0. JSON_UNESCAPED_SLASHES (integer) Don't escape /. Available since PHP 5.4.0. JSON_UNESCAPED_UNICODE (integer) Encode multibyte Unicode characters literally (default is to escape as \uXXXX). Available since PHP 5.4.0. JSON_PARTIAL_OUTPUT_ON_ERROR (integer) Substitute some unencodable values instead of failing. Available since PHP 5.5.0. JSON_PRESERVE_ZERO_FRACTION (integer) Ensures that float values are always encoded as a float value. Available since PHP 5.6.6.