get_json_object 関数

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

path から JSON オブジェクトを抽出します。

ヒント

新しいコードAzure Databricksでは、json データのクエリを実行するために、VARIANT データ型: 演算子 を使用することをお勧めします。 VARIANT では、読み取りと書き込みのパフォーマンスが向上し、大文字と小文字が区別され、文字列ベースの JSON 解析よりも明確なセマンティクスが提供されます。 「 バリアントと JSON 文字列の違い」を参照してください。

構文

get_json_object(expr, path)

引数

  • expr: 整形式の JSON を含む文字列式。
  • path: $にルート化された JSONPath 式を含む STRING リテラル。 一般的なパターンについては、サポートされている構文と例に関するメモを参照してください。

戻り値

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

メモ

get_json_object では、 $に根ざした JSONPath 構文が使用されます。 ドット表記 (.field) によるフィールド アクセスでは大文字と小文字が区別されません。角かっこ表記 (['field'] または ["field"]) では大文字と小文字が区別されます。 これは、Azure Databricks JSON パス式: 演算子で使用されるVARIANT文字列と JSON 文字列を個別に照会する場合とは異なります。