適用於:
Databricks SQL
Databricks Runtime
從 path擷取 JSON 物件。
小提示
對於新程式碼,Azure Databricks建議使用 VARIANT 資料型別搭配 : 運算子來查詢 JSON 資料。
VARIANT 提供更好的讀寫效能、大小寫區分欄位存取,以及比字串式 JSON 解析更清晰的語意。 請參考變體與 JSON 字串的差異。
語法
get_json_object(expr, path)
引數
-
expr:包含格式正確的 JSON 的 STRING 運算式。 -
path: 一個包含根於$的 JSONPath 表達式的 STRING 字面值。 請參見 註解 以了解支援語 法,並 以範例了解常見模式。
退貨
字串。
如果找不到物件,則會傳回 null。
範例
-- 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 使用 JSONPath 語法,根於 $。 以點符號.field()存取欄位為不區分大小寫;括號符號(['field'] 或 ["field"])則不區分大小寫。 這與使用 : 運算子 用於查詢 VARIANT 和 JSON 字串的 Azure Databricks JSON 路徑表達式不同,後者另有說明。