Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles sólo cuando la extensión haya sido compilada con PHP, o bien sea cargada dinámicamente en ejecución.

Las constantes siguientes indican el tipo de error devuelto por json_last_error() o almacenado como code de una JsonException.

JSON_ERROR_NONE (int)
No se ha producido ningún error.
JSON_ERROR_DEPTH (int)
Se ha alcanzado la profundidad máxima de la pila.
JSON_ERROR_STATE_MISMATCH (int)
Ocurre con un underflow o con una inadaptación de los modos.
JSON_ERROR_CTRL_CHAR (int)
Error al controlar los caracteres, probablemente codificados incorrectamente.
JSON_ERROR_SYNTAX (int)
Error de sintaxis.
JSON_ERROR_UTF8 (int)
Caracteres UTF-8 mal formados, probablemente codificados incorrectamente.
JSON_ERROR_RECURSION (int)
El objeto o el array pasado a la función json_encode() incluye referencias recursivas y no pueden ser codificadas. Si se ha proporcionado la opción JSON_PARTIAL_OUTPUT_ON_ERROR, null será codificado en lugar de la referencia recursiva.
JSON_ERROR_INF_OR_NAN (int)
El valor pasado a la función json_encode() incluye NAN, o INF. Si se ha proporcionado la opción JSON_PARTIAL_OUTPUT_ON_ERROR, 0 será codificado en lugar de estos números especiales.
JSON_ERROR_UNSUPPORTED_TYPE (int)
Se ha proporcionado un valor de un tipo no soportado a la función json_encode(), como por ejemplo una recurso. Si se ha proporcionado la opción JSON_PARTIAL_OUTPUT_ON_ERROR, null será codificado en lugar del valor no soportado.
JSON_ERROR_INVALID_PROPERTY_NAME (int)
Una clave que comienza con el carácter \u0000 estaba presente en la cadena de caracteres pasada a json_decode() durante la decodificación de un objeto JSON en un objeto PHP.
JSON_ERROR_UTF16 (int)
Sustituto UTF-16 simple no apareado en el escape unicode contenido en la cadena de caracteres JSON pasada a json_decode().
JSON_ERROR_NON_BACKED_ENUM (int)
El valor pasado a json_encode() incluye una enumeración no soportada que no puede ser serializada. Disponible a partir de PHP 8.1.0.

Las constantes siguientes pueden ser combinadas para formar las opciones de json_decode().

JSON_BIGINT_AS_STRING (int)
Decodifica los enteros grandes como una cadena de caracteres.
JSON_OBJECT_AS_ARRAY (int)
Decodifica un objeto JSON en array PHP. Esta opción puede ser añadida automáticamente llamando a json_decode() con el segundo argumento igual a true.

Las constantes siguientes pueden ser combinadas para formar las opciones de json_encode().

JSON_HEX_TAG (int)
Todos los caracteres < y > son convertidos en secuencias \u003C y \u003E.
JSON_HEX_AMP (int)
Todos los caracteres & son convertidos en \u0026.
JSON_HEX_APOS (int)
Todos los apóstrofes ' son convertidos en \u0027.
JSON_HEX_QUOT (int)
Todas las comillas dobles " son convertidas en \u0022.
JSON_FORCE_OBJECT (int)
Produce un objeto en lugar de un array, cuando se utiliza un array no asociativo. Esto es especialmente útil cuando el destinatario del resultado espera un objeto, y el array está vacío.
JSON_NUMERIC_CHECK (int)
Codifica las cadenas numéricas como números.
JSON_PRETTY_PRINT (int)
Utiliza espacios en los datos devueltos para formatearlos.
JSON_UNESCAPED_SLASHES (int)
No escapar los caracteres /.
JSON_UNESCAPED_UNICODE (int)
Codifica los caracteres multioctetos Unicode literalmente (el comportamiento por defecto es escaparles con \uXXXX).
JSON_PARTIAL_OUTPUT_ON_ERROR (int)
Sustituye ciertos valores no codificables en lugar de fallar.
JSON_PRESERVE_ZERO_FRACTION (int)
Asegura que los valores de tipo nombre décimal siempre sean codificados como valor flotante.
JSON_UNESCAPED_LINE_TERMINATORS (int)
Los terminadores de línea son conservados sin escapar cuando JSON_UNESCAPED_UNICODE es proporcionado. Utiliza el mismo comportamiento como si fuera antes de PHP 7.1 sin esta constante. Disponible a partir de PHP 7.1.0.

Las constantes siguientes pueden ser combinadas para formar las opciones de json_decode() y json_encode().

JSON_INVALID_UTF8_IGNORE (int)
Ignora los caracteres UTF-8 inválidos. Disponible a partir de PHP 7.2.0.
JSON_INVALID_UTF8_SUBSTITUTE (int)
Convierte los caracteres UTF-8 inválidos en \0xfffd (Carácter Unicode 'REPLACEMENT CHARACTER'). Disponible a partir de PHP 7.2.0.
JSON_THROW_ON_ERROR (int)
Emite una JsonException si ocurre un error en lugar de establecer el estado de error global que es recuperado mediante json_last_error() y json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR tiene prioridad sobre JSON_THROW_ON_ERROR. Disponible a partir de PHP 7.3.0.