Tipos de Recurso
JsonSerializable
JSON
PHP Manual

# Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

As seguintes constantes indicam o tipo de erro retornado pela função json_last_error().

`JSON_ERROR_NONE` (integer)
  Sem erros. Disponível desde o PHP 5.3.0.
`JSON_ERROR_DEPTH` (integer)
  O limite de pilha de chamadas foi ultrapassado Disponível desde o PHP 5.3.0.
`JSON_ERROR_STATE_MISMATCH` (integer)
  Ocorre em underflows ou com incongruência de modos. Disponível desde o PHP 5.3.0.
`JSON_ERROR_CTRL_CHAR` (integer)
  Erro de controle de caracteres, possivelmente erro de enconding. Disponível desde o PHP 5.3.0.
`JSON_ERROR_SYNTAX` (integer)
  Erro de sintaxe. Disponível desde o PHP 5.3.0.
`JSON_ERROR_UTF8` (integer)
  Caracteres UTF-8 mal formados, possivelmente erro de enconding. Esta constante está disponível desde o PHP 5.3.3.
`JSON_ERROR_RECURSION` (integer)

  O objeto ou array passado para json_encode() inclui referências recursivas, e não pode ser formatada. Se a opção `JSON_PARTIAL_OUTPUT_ON_ERROR` foi informada, `NULL` será substituido no lugar da referência recursiva.

  Esta constante está disponível desde o PHP 5.5.0.

`JSON_ERROR_INF_OR_NAN` (integer)

  Um valor passado para json_encode() inclui `NAN` ou `INF`. Se a opção `JSON_PARTIAL_OUTPUT_ON_ERROR` foi informada, 0 será substituído no lugar do número especial.

  Esta constante está disponível desde o PHP 5.5.0.

`JSON_ERROR_UNSUPPORTED_TYPE` (integer)

  Um valor de um tipo não suportado foi informado para json_encode(), por exemplo um resource. Se a opção `JSON_PARTIAL_OUTPUT_ON_ERROR` foi informada, `NULL` será substitui ao invés do valor não suportado.

  Esta constante está disponível desde o PHP 5.5.0.

As seguintes constantes podem ser combinadas para formar opções para a função json_encode().

`JSON_HEX_TAG` (integer)
  Todos os caracteres < e > serão convertidos para \u003C and \u003E. Disponível desde o PHP 5.3.0.
`JSON_HEX_AMP` (integer)
  Todos os caracteres & serão convertidos para \u0026. Disponível desde o PHP 5.3.0.
`JSON_HEX_APOS` (integer)
  Todos os caracteres ' serão convertidos para \u0027. Disponível desde o PHP 5.3.0.
`JSON_HEX_QUOT` (integer)
  Todos os caracteres " serão convertidos para \u0022. Disponível desde o PHP 5.3.0.
`JSON_FORCE_OBJECT` (integer)
  Imprime um objeto em vez de um array quando um array não recursivo é usado. Muito útil quando o chamador espera um objeto mas o array está vazio. Disponível desde o PHP 5.3.0.
`JSON_NUMERIC_CHECK` (integer)
  Codifica strings numéricas como números. Disponível desdee o PHP 5.3.3.
`JSON_BIGINT_AS_STRING` (integer)
  Codifica números grandes como seu valor string original. Disponível desde o PHP 5.4.0.
`JSON_PRETTY_PRINT` (integer)
  Formata os dados retornados com espaços em branco. Disponível desde PHP 5.4.0.
`JSON_UNESCAPED_SLASHES` (integer)
  Não escapa o caracter /. Disponível desde o PHP 5.4.0.
`JSON_UNESCAPED_UNICODE` (integer)
  Codifica caracteres Unicode multibyte literalmente (default é formatar como \uXXXX). Disponível desde o PHP 5.4.0.

Tipos de Recurso
JsonSerializable
JSON
PHP Manual