跳到主要内容

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。

示例

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