Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen
Gäller för:
Databricks SQL
Databricks Runtime
Extraherar ett JSON-objekt från path.
Tips/Råd
För ny kod rekommenderar Azure Databricks att du använder datatypen VARIANT med operatorn : för att köra frågor mot JSON-data.
VARIANT ger bättre läs- och skrivprestanda, skiftlägeskänslig fältåtkomst och tydligare semantik än strängbaserad JSON-parsning. Se Hur skiljer sig varianten från JSON-strängar?.
Syntax
get_json_object(expr, path)
Argument
-
expr: Ett STRING-uttryck som innehåller välformulerad JSON. -
path: En STRING-literal som innehåller ett JSONPath-uttryck som är rotat på$. Se Anteckningar för syntax som stöds och Exempel för vanliga mönster.
Returer
En sträng.
Om objektet inte kan hittas returneras null.
Exempel
-- 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 använder JSONPath-syntax rotad på $. Fältåtkomst efter punkt notation (.field) är skiftlägesokänslig; hakparentes notation (['field'] eller ["field"]) är skiftlägeskänslig. Detta skiljer sig från sökvägsuttrycket Azure Databricks JSON som används med operatorn : för att fråga VARIANT och JSON-strängar, som dokumenteras separat.