parse_json
功能
将字符串类型的数据构造为 JSON 类型的数据。
语法
PARSE_JSON(string_expr)
参数说明
string_expr
: 字符串的表达式。支持的数据类型为字符串类型(STRING、VARCHAR、CHAR)。
返回值说明
返回 JSON 类型的值。
如果字符串不能解析为规范的 JSON,则返回 NULL,参见示例五。JSON 规范,请参 见 RFC 7159。
示例
示例一: 将字符串类型的 1 构造为 JSON 类型的 1。
mysql> SELECT PARSE_JSON('1');
+-----------------+
| parse_json('1') |
+-----------------+
| "1" |
+-----------------+
示例二:将一个字符串类型的数组构造为一个 JSON 类型的数组。
mysql> SELECT PARSE_JSON('[1,2,3]');
+-----------------------+
| parse_json('[1,2,3]') |
+-----------------------+
| [1, 2, 3] |
+-----------------------+
示例三:将一个字符串类型的对象构造为一个 JSON 类型的对象。
mysql> SELECT PARSE_JSON('{"star": "rocks"}');
+---------------------------------+
| parse_json('{"star": "rocks"}') |
+---------------------------------+
| {"star": "rocks"} |
+---------------------------------+
示例四:构造一个 JSON 类型的 NULL。
mysql> SELECT PARSE_JSON('null');
+--------------------+
| parse_json('null') |
+--------------------+
| "null" |
+--------------------+
示例五:如果字符串不能解析为规范的 JSON,则返回 NULL。 如下示例中,star 没有用双引号括起来,无法解析为合法的 JSON,因此返回 NULL。
mysql> SELECT PARSE_JSON('{star: "rocks"}');
+-------------------------------+
| parse_json('{star: "rocks"}') |
+-------------------------------+
| NULL |
+-------------------------------+
示例六:如果 JSON 的 key 中包含 '.',例如 'a.1' 则需要 '\' 进行转义,或者使用单引号包裹整个 key 值及双引号。
mysql> select parse_json('{"b":4, "a.1": "1"}')->"a\\.1";
+--------------------------------------------+
| parse_json('{"b":4, "a.1": "1"}')->'a\\.1' |
+--------------------------------------------+
| "1" |
+--------------------------------------------+
mysql> select parse_json('{"b":4, "a.1": "1"}')->'"a.1"';
+--------------------------------------------+
| parse_json('{"b":4, "a.1": "1"}')->'"a.1"' |
+--------------------------------------------+
| "1" |
+--------------------------------------------+
Keywords
parse_json, parse json