メインコンテンツまでスキップ
バージョン: Latest-3.4

json_keys

JSON オブジェクトからトップレベルのキーを JSON 配列として返します。また、path が指定されている場合、そのパスからトップレベルのキーを返します。

Syntax

json_keys(json_doc[, path])

Parameters

json_doc: 必須項目。キーを返す対象の JSON ドキュメントです。JSON オブジェクトである必要があります。

path: 任意項目。パスは一般的に $ で始まり、. をパスの区切りとして使用します。[] は配列の添字として使用され、0 から始まります。

Return value

JSON 配列を返します。

JSON オブジェクトが空の場合、空の配列が返されます。

JSON ドキュメントが JSON オブジェクトでない場合、またはパスがドキュメント内の値を特定しない場合、NULL が返されます。

JSON ドキュメントが JSON オブジェクトをネストした配列である場合、path パラメータを使用してそのオブジェクトからキーを取得できます。

Examples

例 1: 入力された JSON オブジェクトが空であるため、空の配列を返します。

select json_keys('{}');
+-----------------+
| json_keys('{}') |
+-----------------+
| [] |
+-----------------+

例 2: JSON オブジェクトのキーを返します。

select json_keys('{"a": 1, "b": 2, "c": 3}');
+----------------+
| json_keys('1') |
+----------------+
|["a", "b", "c"] |
+----------------+

例 3: 指定されたパスに一致する JSON オブジェクトのキーを返します。

select json_keys('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c');
+---------------------------------------------------------------------+
| json_keys('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c') |
+---------------------------------------------------------------------+
| ["d", "e", "f"] |
+---------------------------------------------------------------------+

例 4: パスが存在しない場合。

select json_keys('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.e');
+---------------------------------------------------------------------+
| json_keys('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.e') |
+---------------------------------------------------------------------+
| NULL |
+---------------------------------------------------------------------+

例 5: JSON ドキュメントが JSON オブジェクトでない場合。

select json_keys('[1, 2, {"a": 1, "b": 2}]');
+---------------------------------------+
| json_keys('[1, 2, {"a": 1, "b": 2}]') |
+---------------------------------------+
| NULL |
+---------------------------------------+

例 6: JSON ドキュメントが JSON オブジェクトをネストした配列である場合。パスを指定してそのオブジェクトからキーを取得します。

select json_keys('[0, 1, {"a": 1, "b": 2}]', '$[2]');
+-----------------------------------------------+
| json_keys('[0, 1, {"a": 1, "b": 2}]', '$[2]') |
+-----------------------------------------------+
| ["a", "b"] |
+-----------------------------------------------+