Função get_json_object

Aplica-se a:marca de seleção positiva SQL do Databricks marca de seleção positiva Runtime do Databricks

Extrai um objeto JSON de path.

Dica

Para novo código, Azure Databricks recomenda usar o tipo de dados VARIANT com o operador : para consultar dados JSON. VARIANT oferece melhor desempenho de leitura e gravação, acesso a campos que diferenciam maiúsculas de minúsculas e semântica mais clara do que a análise JSON baseada em cadeia de caracteres. Veja Como a variante é diferente das cadeias de caracteres JSON?.

Sintaxe

get_json_object(expr, path)

Argumentos

  • expr: uma expressão de STRING que contém JSON bem formado.
  • path: um literal STRING que contém uma expressão JSONPath com raiz em $. Consulte Notas para obter sintaxe e exemplos com suporte para padrões comuns.

Devoluções

Uma STRING.

Se o objeto não puder ser encontrado, será retornado um valor nulo.

Exemplos

-- Extract a top-level field
> SELECT get_json_object('{"a":"b"}', '$.a');
 b

-- Extract a nested field
> SELECT get_json_object('{"a":{"b":"c"}}', '$.a.b');
 c

-- Extract an array element by index
> SELECT get_json_object('{"items":["apple","pear"]}', '$.items[0]');
 apple

-- Extract a field whose name contains a space
> SELECT get_json_object('{"first name":"Ada"}', '$["first name"]');
 Ada

-- Extract a field whose name contains a dot, using bracket notation with double quotes
> SELECT get_json_object('{"ids":{"a.b":"42"}}', '$.ids["a.b"]');
 42

-- Extract a field from every element of an array
> SELECT get_json_object('{"items":[{"n":1},{"n":2}]}', '$.items[*].n');
 [1,2]

-- Returns NULL when the path does not match
> SELECT get_json_object('{"a":"b"}', '$.missing');
 NULL

Observações

get_json_object usa a sintaxe JSONPath com raiz em $. O acesso de campo por notação de ponto (.field) não diferencia maiúsculas de minúsculas; a notação de colchete (['field'] ou ["field"]) diferencia maiúsculas de minúsculas. Isso difere da expressão de caminho Azure Databricks JSON usada com o operador : para consultar cadeias de caracteres VARIANT e JSON, documentadas separadamente.