Categorias:

Funções de dados semiestruturados e estruturados (Análise)

TRY_PARSE_JSON

Uma versão especial de PARSE_JSON que retorna um valor NULL se ocorrer um erro durante a análise.

Sintaxe

TRY_PARSE_JSON( <expr> [ , '<parameter>' ] )
Copy

Argumentos

Obrigatório:

expr

Uma expressão do tipo cadeia de caracteres (por exemplo, VARCHAR) com informações JSON válidas.

Opcional:

'parameter'

Constante de cadeia de caracteres que especifica o parâmetro usado para pesquisar correspondências. Valores com suporte:

Parâmetro

Descrição

d

Permita chaves duplicadas em objetos JSON. Se um objeto JSON contiver uma chave duplicada, o objeto retornado terá uma única instância dessa chave com o último valor especificado para essa chave.

s

Não permita chaves duplicadas em objetos JSON (estrito). Este valor é o padrão.

Retornos

Retorna um valor do tipo VARIANT com um documento JSON.

Se a entrada for NULL ou se ocorrer um erro durante a análise, a função retornará NULL.

Esta função não retorna um tipo estruturado.

Notas de uso

Consulte PARSE_JSON para as notas de uso.

Exemplos

Isto mostra um exemplo de armazenamento de diferentes tipos de dados em uma coluna VARIANT chamando TRY_PARSE_JSON para analisar cadeias de caracteres de caracteres que contêm valores que podem ser analisados como JSON:

Criar e preencher uma tabela.

CREATE OR REPLACE TEMPORARY TABLE vartab (ID INTEGER, v VARCHAR);

INSERT INTO vartab (id, v) VALUES
  (1, '[-1, 12, 289, 2188, FALSE,]'),
  (2, '{ "x" : "abc", "y" : FALSE, "z": 10} '),
  (3, '{ "bad" : "json", "missing" : TRUE, "close_brace": 10 ');
Copy

Consultar os dados, usando TRY_PARSE_JSON. Observe que o valor para a terceira linha é NULL. Se a consulta usasse PARSE_JSON em vez de TRY_PARSE_JSON, ela falharia.

SELECT ID, TRY_PARSE_JSON(v)
  FROM vartab
  ORDER BY ID;
Copy
+----+-------------------+
| ID | TRY_PARSE_JSON(V) |
|----+-------------------|
|  1 | [                 |
|    |   -1,             |
|    |   12,             |
|    |   289,            |
|    |   2188,           |
|    |   false,          |
|    |   undefined       |
|    | ]                 |
|  2 | {                 |
|    |   "x": "abc",     |
|    |   "y": false,     |
|    |   "z": 10         |
|    | }                 |
|  3 | NULL              |
+----+-------------------+

Consulte PARSE_JSON para obter mais exemplos.