に最終更新
JSON_VALID
説明
JSON_VALID 関数は、入力が有効な JSON 形式かどうかを検証します。文字列型と JSON 型の入力を受け付けます。
構文
JSON_VALID(<str>)
JSON_VALID(<json>)
パラメータ
<str>: 検証対象の JSON 形式の文字列です。<json>: 検証対象の JSON 型の値です。
戻り値
1: 入力が有効な JSON 形式の場合。0: 入力が有効な JSON 形式ではない場合。NULL: 入力パラメータが NULL の場合。
注意事項
JSON 型のパラメータをサポートしているため、JSON 列を渡す際の暗黙的な型変換 (JSON から文字列) による問題を避けられます。JSON 型の列に格納されるデータは通常有効な JSON なので、JSON 型のパラメータに JSON_VALID を適用すると、通常は 1 を返します。
別名
- JSONB_VALID
例
-
有効な JSON 文字列を検証する
SELECT json_valid('{"k1":"v31","k2":300}');+-------------------------------------+
| json_valid('{"k1":"v31","k2":300}') |
+-------------------------------------+
| 1 |
+-------------------------------------+ -
無効な JSON 文字列を検証する
SELECT json_valid('invalid json');+----------------------------+
| json_valid('invalid json') |
+----------------------------+
| 0 |
+----------------------------+ -
NULL パラメータを検証する
SELECT json_valid(NULL);+------------------+
| json_valid(NULL) |
+------------------+
| NULL |
+------------------+ -
JSON 型のパラメータを検証する
SELECT json_valid(cast('{"k1":"v31","k2":300}' as json));+----------------------------------------------------+
| json_valid(cast('{"k1":"v31","k2":300}' as json)) |
+----------------------------------------------------+
| 1 |
+----------------------------------------------------+