Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fonction
S’applique à :
Databricks SQL
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.