• PHP Video Tutorials

PHP - JavaScript Object Notation Functions

Predefined Constants in JSON

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

The following constants indicate the type of error returned by the json_last_error() function.

  • JSON_ERROR_NONE (integer) − No error has occurred.
  • JSON_ERROR_DEPTH (integer) − The maximum stack depth has been exceeded
  • JSON_ERROR_STATE_MISMATCH (integer) − Occurs with underflow or with the modes mismatch
  • 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
  • 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
  • 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
  • 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
  • JSON_ERROR_INVALID_PROPERTY_NAME (integer) − A key starting with \u0000 character was in the string passed to json_decode() when decoding a JSON object into a PHP object
  • JSON_ERROR_UTF16 (integer) − Single unpaired UTF-16 surrogate in unicode escape contained in the JSON string passed to json_encode()

The following constants can be combined to form options for the json_decode() function.

  • JSON_BIGINT_AS_STRING (integer) − Decodes large integers as their original string value
  • JSON_OBJECT_AS_ARRAY (integer) − Decodes JSON objects as PHP array. This option can be added automatically by calling json_decode() with the second parameter equal to TRUE

The following constants can be combined to form options for json_encode().

  • 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_NUMERIC_CHECK (integer) − Encodes numeric strings as numbers
  • JSON_PRETTY_PRINT (integer) − Use whitespace in returned data to format it
  • JSON_UNESCAPED_SLASHES (integer) − Don't escape /
  • JSON_UNESCAPED_UNICODE (integer) − Encode multibyte Unicode characters literally (default is to escape as \uXXXX)
  • JSON_PARTIAL_OUTPUT_ON_ERROR (integer) − Substitute some unencodable values instead of failing
  • JSON_PRESERVE_ZERO_FRACTION (integer) − Ensures that float values are always encoded as a float value
  • JSON_UNESCAPED_LINE_TERMINATORS (integer) − The line terminators are kept unescaped when JSON_UNESCAPED_UNICODE is supplied. It uses the same behaviour as it was before PHP 7.1 without this constant
Sr.No Function & Description
1 json_decode()

The json_decode() function can decode a JSON string.

2 json_encode()

The json_encode() function can return the JSON representation of a value.

3 json_last_error()

The json_last_error() function can return the last error occurred.

4 json_last_error_msg()

The json_last_error_msg() function can return an error string of last json_encode() or json_decode() call.

5 sonserializable_interface()

An Object implementing JsonSerializable interface can customize their JSON representation when encoded with the json_encode() function.

6 JsonSerializable_jsonSerialize()

JsonSerializable::jsonSerialize() can specify data which can be serialized to JSON.