- Categorias:
Funções de conversão , Funções de dados semiestruturados e estruturados (Conversão)
TO_JSON¶
Converte um valor de VARIANT em uma cadeia de caracteres contendo a representação JSON do valor.
Sintaxe¶
Argumentos¶
exprUma expressão do tipo VARIANT que contém informações JSON válidas.
Retornos¶
Retorna um valor do tipo VARCHAR.
Se a entrada for NULL, a função retorna NULL.
Notas de uso¶
Se a entrada for NULL, a saída também será NULL. Se a entrada for um VARIANT que contém JSON nulo, então o valor retornado será a cadeia de caracteres
"null"(ou seja, a palavra “nulo” delimitada por aspas duplas). Consulte o exemplo abaixo.Um objeto JSON (também chamado de “dicionário” ou “hash”) é um conjunto desordenado de pares chave-valor. Quando TO_JSON produz uma cadeia de caracteres, a ordem dos pares chave-valor nessa cadeia de caracteres não será previsível.
TO_JSON e PARSE_JSON são funções (quase) conversas ou recíprocas.
A função PARSE_JSON usa uma cadeia de caracteres como entrada e retorna um VARIANT compatível com JSON.
A função TO_JSON usa um VARIANT compatível com JSON e retorna uma cadeia de caracteres.
O seguinte é (conceitualmente) verdadeiro se X for uma cadeia de caracteres contendo JSON válido:
X = TO_JSON(PARSE_JSON(X));Por exemplo, o seguinte é (conceitualmente) verdadeiro:
'{"pi":3.14,"e":2.71}' = TO_JSON(PARSE_JSON('{"pi":3.14,"e":2.71}'))No entanto, as funções não são perfeitamente recíprocas porque:
Cadeias de caracteres vazias e cadeias de caracteres com apenas espaço em branco não são tratadas reciprocamente. Por exemplo, o valor de retorno de
PARSE_JSON('')é NULL, mas o valor de retorno deTO_JSON(NULL)é NULL, não o''recíproco.A ordem dos pares chave-valor na cadeia de caracteres produzida por TO_JSON não é previsível.
A cadeia de caracteres produzida por TO_JSON pode ter menos espaço em branco do que a cadeia de caracteres passada para PARSE_JSON.
Por exemplo, os seguintes são JSON equivalentes, mas não cadeias de caracteres equivalentes:
{"pi": 3.14, "e": 2.71}{"e":2.71,"pi":3.14}
Exemplos¶
Os exemplos a seguir usam a função TO_JSON.
Inserção de valores VARIANT e conversão em cadeias de caracteres com uma consulta¶
Criar e preencher uma tabela. A instrução INSERT usa a função PARSE_JSON para inserir um valor VARIANT na coluna v da tabela.
Consulte os dados e use a função TO_JSON para converter o valor VARIANT em uma cadeia de caracteres.
Manipulação de valores NULL com as funções PARSE_JSON e TO_JSON¶
O exemplo a seguir mostra como PARSE_JSON e TO_JSON manipula valores NULL:
Comparação de PARSE_JSON e TO_JSON¶
Os exemplos a seguir demonstram a relação entre as funções PARSE_JSON e TO_JSON.
Este exemplo cria uma tabela com uma coluna VARCHAR e uma coluna VARIANT. A instrução INSERT insere um valor VARCHAR, e a instrução UPDATE gera um valor JSON que corresponde a esse valor VARCHAR.
Esta consulta mostra que TO_JSON e PARSE_JSON são funções conceitualmente recíprocas:
Entretanto, as funções não são exatamente recíprocas. Diferenças nos espaços em branco ou na ordem dos pares chave-valor podem impedir que a saída corresponda à entrada. Por exemplo: