-
Notifications
You must be signed in to change notification settings - Fork 0
Handling Errors
Adrian edited this page Apr 1, 2021
·
1 revision
Encoding or decoding errors throw PHP's native JsonException
. See the PHP Manual for more information. For reference, possible error codes are:
-
JSON_ERROR_NONE
: No error has occurred -
JSON_ERROR_DEPTH
: The maximum stack depth has been exceeded -
JSON_ERROR_STATE_MISMATCH
: Invalid or malformed JSON -
JSON_ERROR_CTRL_CHAR
: Control character error, possibly incorrectly encoded -
JSON_ERROR_SYNTAX
: Syntax error -
JSON_ERROR_UTF8
: Malformed UTF-8 characters, possibly incorrectly encoded -
JSON_ERROR_RECURSION
: One or more recursive references in the value to be encoded -
JSON_ERROR_INF_OR_NAN
: One or more NAN or INF values in the value to be encoded -
JSON_ERROR_UNSUPPORTED_TYPE
: A value of a type that cannot be encoded was given -
JSON_ERROR_INVALID_PROPERTY_NAME
: A property name that cannot be encoded was given -
JSON_ERROR_UTF16
: Malformed UTF-16 characters, possibly incorrectly encoded
When attempting to set an option to an invalid value, an InvalidArgumentException
will be thrown. This exception extends from PHP's native InvalidArgumentException
class and implements the Exceptable interface. Possible error codes are:
-
INVALID_ASSOC
: TheJson::ASSOC
option must be boolean -
INVALID_DEPTH
: TheJson::DEPTH
option must be a non-negative integer -
INVALID_DECODE_FLAGS
: TheJson::DECODE_FLAGS
option must be a non-negative integer -
INVALID_ENCODE_FLAGS
: TheJson::ENCODE_FLAGS
option must be a non-negative integer
An InvalidArgumentException
will also be thrown when attempting to encode a non-json-able object with the $strict
flag set. In this case, the InvalidArgumentException
will not be thrown directly, but will be set as the $previous
exception on a JsonException
with the code JSON_ERROR_UNSUPPORTED_TYPE
.
-
UNSUPPORTED_TYPE
: Objects other thanstdClass
that do not implementJsonSerializable
cannot be encoded under "strict" mode