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。
示例
-
验证有效的 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 |
+----------------------------------------------------+