get_json_object函式

適用於:打勾表示「是」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 路徑表達式不同,後者另有說明。