メインコンテンツまでスキップ

JSON_KEYS

説明

JSONオブジェクトのすべてのキーを配列形式で返します。デフォルトでは、ルートオブジェクトのキーを返しますが、パラメータを通じて特定のパスのオブジェクトキーを返すことも制御できます。

構文

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

パラメータ

必須パラメータ

  • <json_object> JSON型、キーを抽出する必要があるJSONオブジェクト。

オプションパラメータ

  • <path> String型、チェックするJSONサブドキュメントを指定するオプションのJSONパス。提供されない場合は、ルートドキュメントがデフォルトになります。

戻り値

  • Array 文字列の配列を返します。配列のメンバーはJSONオブジェクトのすべてのキーです。

注意事項

  • <json_object>または<path>がNULLの場合、NULLを返します。
  • JSONオブジェクトでない場合(例:JSON配列の場合)、NULLを返します。
  • <path>によって指し示されるオブジェクトが存在しない場合、NULLを返します。

  1. 例1

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}');
    +---------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}') |
    +---------------------------------------+
    | ["a", "b"] |
    +---------------------------------------+
    SELECT JSON_KEYS('{}');
    +-----------------+
    | JSON_KEYS('{}') |
    +-----------------+
    | [] |
    +-----------------+
  2. パスを指定

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b');
    +----------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b') |
    +----------------------------------------------+
    | ["c"] |
    +----------------------------------------------+
  3. NULLパラメータ

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', NULL);
    +---------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', NULL) |
    +---------------------------------------------+
    | NULL |
    +---------------------------------------------+
    SELECT JSON_KEYS(NULL);
    +-----------------+
    | JSON_KEYS(NULL) |
    +-----------------+
    | NULL |
    +-----------------+
  4. JSONオブジェクトではありません

    SELECT JSON_KEYS('[1,2]');
    +--------------------+
    | JSON_KEYS('[1,2]') |
    +--------------------+
    | NULL |
    +--------------------+
    SELECT JSON_KEYS('{"k": [1, 2, 3]}', '$.k');
    +--------------------------------------+
    | JSON_KEYS('{"k": [1, 2, 3]}', '$.k') |
    +--------------------------------------+
    | NULL |
    +--------------------------------------+
  5. パスで指定されたオブジェクトが存在しません

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c');
    +----------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c') |
    +----------------------------------------------+
    | NULL |
    +----------------------------------------------+