get_json_object Função

Aplica-se a:assinalado como sim Databricks SQL assinalado como sim Databricks Runtime

Extrai um objeto JSON do path.

Sugestão

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 escrita, acesso a campos com sensibilidade a maiúsculas minúsculas e semântica mais clara do que a análise JSON baseada em strings. Veja Como é que a variante é diferente das cadeias JSON?.

Sintaxe

get_json_object(expr, path)

Argumentos

  • expr: Uma expressão STRING contendo JSON bem formado.
  • path: Um literal STRING contendo uma expressão JSONPath enraizada em $. Consulte Notas para sintaxe suportada e Exemplos para padrões comuns.

Devoluções

UMA STRING.

Se o objeto não puder ser encontrado, null será retornado.

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

Notes

get_json_object usa a sintaxe JSONPath enraizada em $. O acesso a campos por notação de pontos (.field) é indistinto a maiúsculas e maiúsculas; a notação entre parênteses (['field'] ou ["field"]) é distinta a maiúsculas e minúsculas. Isto difere da expressão de caminho Azure Databricks JSON usada com o operador : para consultar as cadeias VARIANT e JSON, que é documentada separadamente.