get_json_double

功能

解析并获取 json_strjson_path 的浮点型内容。如果 json_str 格式不对或 json_path 格式不对, 或者无法找到匹配项, 则返回 NULL。

语法

get_json_double(json_str, json_path)

参数说明

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

json_path: 指定的路径,支持的数据类型为 VARCHAR,其中 json_path 必须以 $ 符号作为开头, 使用 . 作为路径分割符, 如果路径中包含 ., 则可以使用双引号包围。使用 [ ] 表示数组下标, 从 0 开始, path 的内容不能包含 ", [ 和 ]

返回值说明

返回值的数据类型为 DOUBLE。

示例

  1. 获取 key 为 "k1" 的 value

    MySQL > SELECT get_json_double('{"k1":1.3, "k2":"2"}', "$.k1");
    +-------------------------------------------------+
    | get_json_double('{"k1":1.3, "k2":"2"}', '$.k1') |
    +-------------------------------------------------+
    |                                             1.3 |
    +-------------------------------------------------+
  2. 获取 key 为 "my.key" 的数组中第二个元素

    MySQL > SELECT get_json_double('{"k1":"v1", "my.key":[1.1, 2.2, 3.3]}', '$."my.key"[1]');
    +---------------------------------------------------------------------------+
    | get_json_double('{"k1":"v1", "my.key":[1.1, 2.2, 3.3]}', '$."my.key"[1]') |
    +---------------------------------------------------------------------------+
    |                                                                       2.2 |
    +---------------------------------------------------------------------------+
  3. 获取二级路径为 k1.key -> k2 的数组中,第一个元素

    MySQL > SELECT get_json_double('{"k1.key":{"k2":[1.1, 2.2]}}', '$."k1.key".k2[0]');
    +---------------------------------------------------------------------+
    | get_json_double('{"k1.key":{"k2":[1.1, 2.2]}}', '$."k1.key".k2[0]') |
    +---------------------------------------------------------------------+
    |                                                                 1.1 |
    +---------------------------------------------------------------------+

关键词

GET_JSON_DOUBLE, GET, JSON, DOUBLE