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

JSON_VALID

説明

JSON_VALID関数は、入力が有効なJSON形式かどうかを検証するために使用されます。この関数はString型またはJSON型の入力を受け取り、JSON形式を検証します。

構文

JSON_VALID(<str>)
JSON_VALID(<json>)

パラメータ

  • <str>: String型、検証対象のJSON形式文字列
  • <json>: JSON型、検証対象のJSON値

戻り値

  • 1: 入力が有効なJSON形式の場合
  • 0: 入力が有効なJSON形式でない場合
  • NULL: 入力パラメータがNULLの場合

注意事項

JSON型パラメータのサポートは、JSON列を渡す際の暗黙的な型変換(JSONからStringへ)で発生する可能性のある問題を回避するためのものです。通常、JSON型列に格納されたデータは有効なJSONデータであるため、JSON型パラメータに対してJSON_VALIDを呼び出すと通常は1が返されます。

エイリアス

  • JSONB_VALID

  1. 有効なJSON文字列を検証する

    SELECT json_valid('{"k1":"v31","k2":300}');
    +-------------------------------------+
    | json_valid('{"k1":"v31","k2":300}') |
    +-------------------------------------+
    | 1 |
    +-------------------------------------+
  2. 無効なJSON文字列を検証する

    SELECT json_valid('invalid json');
    +----------------------------+
    | json_valid('invalid json') |
    +----------------------------+
    | 0 |
    +----------------------------+
  3. NULLパラメータを検証する

    SELECT json_valid(NULL);
    +------------------+
    | json_valid(NULL) |
    +------------------+
    | NULL |
    +------------------+
  4. JSONタイプパラメータを検証する

    SELECT json_valid(cast('{"k1":"v31","k2":300}' as json));
    +----------------------------------------------------+
    | json_valid(cast('{"k1":"v31","k2":300}' as json)) |
    +----------------------------------------------------+
    | 1 |
    +----------------------------------------------------+