メインコンテンツまでスキップ
バージョン: 4.x

JSON_KEYS

デスクリプション

JSON オブジェクトのトップレベル値からキーを返すために使用されます。これらのキーは配列として返されるか、パスパラメータが指定されている場合は、選択されたパスのトップレベルキーとして返されます。この関数には引数として JSON ドキュメントを提供する必要があります。また、JSON ドキュメント内で「トップレベル」パスが開始される場所を指定するために、(オプションで)2番目のパラメータを提供することもできます。 ここで json_doc は JSON ドキュメントであり、path は JSON ドキュメント内で「トップレベル」パスが開始される場所を決定するために使用されるオプションパラメータです。

Syntax

JSON_KEYS(<str> [, <path>])

Alias

  • JSONB_KEYS

Required パラメータ

parametersdescribed
<str>キーを抽出する JSON 文字列が必要です。

Optional パラメータ

parametersdescribed
<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 |
+-------------------------------+