Fonction get_json_object

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Extrait un objet JSON de path.

Tip

Pour le nouveau code, Azure Databricks recommande d’utiliser le type de données VARIANT avec l’opérateur : pour interroger des données JSON. VARIANT offre de meilleures performances de lecture et d’écriture, un accès aux champs respectant la casse et une sémantique plus claire que l’analyse JSON basée sur des chaînes. Voir Comment la variante est différente des chaînes JSON ?.

Syntaxe

get_json_object(expr, path)

Arguments

  • expr : expression de type CHAÎNE contenant un JSON bien formé.
  • path: littéral STRING contenant une expression JSONPath rooté à $. Consultez les notes relatives à la syntaxe prise en charge et aux exemples pour les modèles courants.

Retours

CHAÎNE.

Si l’objet est introuvable, la valeur null est retournée.

Exemples

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

Remarques

get_json_object utilise la syntaxe JSONPath rooté à $. L’accès au champ par notation par point (.field) ne respecte pas la casse ; la notation entre crochets (['field'] ou ["field"]) respecte la casse. Cela diffère de l’expression de chemin Azure Databricks JSON utilisée avec l’opérateur : pour interroger des chaînes VARIANT et JSON, qui sont documentées séparément.