Funktionen get_json_object

Gäller för:markerad ja Databricks SQL markerad ja 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.