get_json_bool
功能
解析并获取 json_str
内指定 json_path
下的布尔内容。如果 json_str
或 json_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。
示例
-
获取 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 |
+----------------------------------------------------+ -
获取 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 |
+--------------------------------------------------------------------------+ -
获取二级路径为
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 |
+----------------------------------------------------------------------+