Constantes pré-definidas
As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.
As seguintes constantes indicam o tipo de erro retornado pela função json_last_error() or armazenadas no code de uma JsonException
-
JSON_ERROR_NONE
(int) - Sem erros.
-
JSON_ERROR_DEPTH
(int) - O limite de pilha de chamadas foi ultrapassado
-
JSON_ERROR_STATE_MISMATCH
(int) - Ocorre em underflows ou com incongruência de modos.
-
JSON_ERROR_CTRL_CHAR
(int) - Erro em caracter de controle, possivelmente erro de enconding.
-
JSON_ERROR_SYNTAX
(int) - Erro de sintaxe.
-
JSON_ERROR_UTF8
(int) - Caracteres UTF-8 mal formados, possivelmente erro de enconding.
-
JSON_ERROR_RECURSION
(int) -
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á substituído no lugar da referência recursiva. -
JSON_ERROR_INF_OR_NAN
(int) -
Um valor passado para json_encode() inclui
NAN
ouINF
. Se a opçãoJSON_PARTIAL_OUTPUT_ON_ERROR
foi informada,0
será substituído no lugar do número especial. -
JSON_ERROR_UNSUPPORTED_TYPE
(int) -
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á substituída ao invés do valor não suportado. -
JSON_ERROR_INVALID_PROPERTY_NAME
(int) - Uma chave começando com caracter \u0000 estava na chave string foi passada para json_decode() quando decodificando um objeto JSON para um objeto PHP.
-
JSON_ERROR_UTF16
(int) - Um surrogate UTF-16 despareado em um unicode escape estava presente em uma string JSON processada por json_decode().
As constantes a seguir podem ser combinadas para formar opções na função json_decode().
-
JSON_BIGINT_AS_STRING
(int) - Decodifica inteiros grandes como suas strings originais.
-
JSON_OBJECT_AS_ARRAY
(int) -
Decodifica objetos JSON como arrays PHP. Esta opção pode ser adicionada automaticamente
quando chamando json_decode() com o segundo parâmetro
igual a
true
.
As seguintes constantes podem ser combinadas para formar opções para a função json_encode().
-
JSON_HEX_TAG
(int) - Todos os caracteres < e > serão convertidos para \u003C and \u003E.
-
JSON_HEX_AMP
(int) - Todos os caracteres & serão convertidos para \u0026.
-
JSON_HEX_APOS
(int) - Todos os caracteres ' serão convertidos para \u0027.
-
JSON_HEX_QUOT
(int) - Todos os caracteres " serão convertidos para \u0022.
-
JSON_FORCE_OBJECT
(int) - 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.
-
JSON_NUMERIC_CHECK
(int) - Codifica strings numéricas como números.
-
JSON_PRETTY_PRINT
(int) - Formata os dados retornados com espaços em branco.
-
JSON_UNESCAPED_SLASHES
(int) -
Não escapa o caracter
/
. -
JSON_UNESCAPED_UNICODE
(int) - Codifica caracteres Unicode multibyte literalmente (default é formatar como \uXXXX).
-
JSON_PARTIAL_OUTPUT_ON_ERROR
(int) - Substitui valores não identificados ao invés de falhar.
-
JSON_PRESERVE_ZERO_FRACTION
(int) - Garante que float sempre são codificados como um número float.
-
JSON_UNESCAPED_LINE_TERMINATORS
(int) -
Os fins de linha são preservados não escapados quando
JSON_UNESCAPED_UNICODE
é informado. Este é o mesmo comportamento existente anteriormente ao PHP 7.1 sem essa constante. Disponível desde o PHP 7.1.0.
As constantes a seguir podem ser combinadas para formar opções para a função json_decode() e json_encode().
-
JSON_INVALID_UTF8_IGNORE
(int) - Ignora caracteres inválidos UTF-8. Disponível desde o 7.2.0.
-
JSON_INVALID_UTF8_SUBSTITUTE
(int) - Converte caracteres inválidos UTF-8 para \0xfffd (Caracter Unicode 'REPLACEMENT CHARACTER') Disponível desde o 7.2.0.
-
JSON_THROW_ON_ERROR
(int) -
Lança um JsonException se ocorrer um erro ao invés
de carregar o erro global que pode ser obtido com
json_last_error() e json_last_error_msg().
JSON_PARTIAL_OUTPUT_ON_ERROR
tem precedência sobreJSON_THROW_ON_ERROR
. Disponível desde o PHP 7.3.0. -
JSON_ERROR_NON_BACKED_ENUM
(int) - O valor passado para json_encode() inclui uma enumeração não apoiada que não pode ser serializada. Disponível a partir do PHP 8.1.0.