JSON_KEYS
デスクリプション
JSON オブジェクトのトップレベル値からキーを返すために使用されます。これらのキーは配列として返されるか、パスパラメータが指定されている場合は、選択されたパスのトップレベルキーとして返されます。この関数には引数として JSON ドキュメントを提供する必要があります。また、JSON ドキュメント内で「トップレベル」パスが開始される場所を指定するために、(オプションで)2番目のパラメータを提供することもできます。 ここで json_doc は JSON ドキュメントであり、path は JSON ドキュメント内で「トップレベル」パスが開始される場所を決定するために使用されるオプションパラメータです。
Syntax
JSON_KEYS(<str> [, <path>])
Alias
- JSONB_KEYS
Required パラメータ
| parameters | described |
|---|---|
<str> | キーを抽出する JSON 文字列が必要です。 |
Optional パラメータ
| parameters | described |
|---|---|
<path> | チェックする JSON サブドキュメントを指定するオプションの JSON パスです。提供されない場合、デフォルトはルートドキュメントです。 |
Return Value
- JSON ドキュメントのキー名のリスト(配列)を返します。
<str>が有効な JSON オブジェクトでない場合は NULL を返します。- JSON オブジェクトにキーがない場合は、空の配列が返されます。
Usage 注釈
- 選択されたオブジェクトが空の場合、結果の配列は空になります。トップレベル値にネストされたサブオブジェクトが含まれている場合、戻り値にはそれらのサブオブジェクトのキーは含まれません。
Examples
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}');
+-----------------------------------------------------+
| json_keys(cast('{"a": 1, "b": {"c": 30}}' as JSON)) |
+-----------------------------------------------------+
| ["a", "b"] |
+-----------------------------------------------------+
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b');
+------------------------------------------------------------+
| json_keys(cast('{"a": 1, "b": {"c": 30}}' as JSON), '$.b') |
+------------------------------------------------------------+
| ["c"] |
+------------------------------------------------------------+
SELECT JSON_KEYS('{}');
+-------------------------------+
| json_keys(cast('{}' as JSON)) |
+-------------------------------+
| [] |
+-------------------------------+
SELECT JSON_KEYS('[1,2]');
+----------------------------------+
| json_keys(cast('[1,2]' as JSON)) |
+----------------------------------+
| NULL |
+----------------------------------+
SELECT JSON_KEYS('[]');
+-------------------------------+
| json_keys(cast('[]' as JSON)) |
+-------------------------------+
| NULL |
+-------------------------------+