JSON
PHP Manual

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 siguientes constantes indican el tipo de error retornado por json_last_error(). Todas están disponibles a partir de PHP 5.3.0

JSON_ERROR_NONE (integer)
No ha ocurrido ningún error.
JSON_ERROR_DEPTH (integer)
Se ha excedido la profundidad máxima de la pila.
JSON_ERROR_CTRL_CHAR (integer)
Error del carácter de control, posiblemente se ha codificado de forma incorrecta.
JSON_ERROR_SYNTAX (integer)
Error de sintaxis.
JSON_ERROR_UTF8 (integer)
Caracteres UTF-8 mal formados, posiblemente codificados incorrectamente. Esta constante está disponible desde PHP 5.3.1.

Las siguientes constantes se pueden combinar para obtener opciones para json_last_error(). Todas están disponibles a partir de PHP 5.3.0

JSON_HEX_TAG (integer)
Todos los < y > se convierten a \u003C y \u003E.
JSON_HEX_AMP (integer)
Todos los & se convierten a \u0026.
JSON_HEX_APOS (integer)
Todas las ' se convierten a \u0027.
JSON_HEX_QUOT (integer)
Todas las " se convierten a \u0022.
JSON_FORCE_OBJECT (integer)
Devuelve un objeto en vez de un array cuando se usa un array no asociativo. Especialmente útil cuando el destinatario del resultado espera un objeto y el array está vacío.

JSON
PHP Manual