跳到主要内容
版本:Latest-3.3

get_json_bool

功能

解析并获取 json_str 内指定 json_path 下的布尔内容。如果 json_strjson_path 格式不正确,或者无法找到匹配项,则返回 NULL。

该函数从 3.3 版本开始支持。

语法

BOOLEAN get_json_bool(VARCHAR json_str, VARCHAR json_path)

参数说明

  • json_str: JSON 字符串,支持的数据类型为 VARCHAR。

  • json_path: 指定的路径,支持的数据类型为 VARCHAR。

    • json_path 必须以 $ 符号作为开头,使用 . 作为路径分隔符。如果路径中包含 .,则可以使用双引号包裹。
    • 使用 [ ] 表示数组下标,下标从 0 开始。

返回值说明

返回值的数据类型为 Boolean。

示例

  1. 获取 key 为 "k1" 的 value。对应的 value 为 true,返回 1

    MySQL > SELECT get_json_bool('{"k1":true, "k2":"false"}', "$.k1");
    +----------------------------------------------------+
    | get_json_bool('{"k1":true, "k2":"false"}', '$.k1') |
    +----------------------------------------------------+
    | 1 |
    +----------------------------------------------------+
  2. 获取 key 为 "my.key" 的数组中第二个元素。对应位置为 false,返回 0。

    SELECT get_json_bool('{"k1":"v1", "my.key":[true, false, 3]}', '$."my.key"[1]');
    +--------------------------------------------------------------------------+
    | get_json_bool('{"k1":"v1", "my.key":[true, false, 3]}', '$."my.key"[1]') |
    +--------------------------------------------------------------------------+
    | 0 |
    +--------------------------------------------------------------------------+
  3. 获取二级路径为 k1.key -> k2 的数组中第一个元素。对应位置为 false,返回 0。

    MYSQL > SELECT get_json_bool('{"k1.key":{"k2":[false, true]}}', '$."k1.key".k2[0]');
    +----------------------------------------------------------------------+
    | get_json_bool('{"k1.key":{"k2":[false, true]}}', '$."k1.key".k2[0]') |
    +----------------------------------------------------------------------+
    | 0 |
    +----------------------------------------------------------------------+