Función get_json_object

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Extrae un objeto JSON de path.

Tip

Para el nuevo código, Azure Databricks recomienda usar el tipo de datos VARIANT con el operador : para consultar datos JSON. VARIANT ofrece un mejor rendimiento de lectura y escritura, acceso a campos con distinción entre mayúsculas y minúsculas y semántica más clara que el análisis json basado en cadenas. Consulte ¿Cómo es la variante diferente de las cadenas JSON?.

Sintaxis

get_json_object(expr, path)

Argumentos

  • expr: expresión de cadena que contiene JSON correcto.
  • path: un literal STRING que contiene una expresión JSONPath raíz en $. Consulte Notas sobre la sintaxis admitida y ejemplos para patrones comunes.

Devoluciones

Un valor STRING.

Si no se encuentra el objeto, se devuelve el valor NULL.

Ejemplos

-- 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

Notas

get_json_object usa la sintaxis jsonPath rootada en $. El acceso de campo por notación de puntos (.field) no distingue mayúsculas de minúsculas; la notación de corchetes (['field'] o ["field"]) distingue mayúsculas de minúsculas. Esto difiere de la expresión de ruta de acceso Azure Databricks JSON usada con el operador : para consultar VARIANT y cadenas JSON, que se documentan por separado.