跳到主要内容
版本: 最新版本-3.5

parse_json

将字符串转换为 JSON 值。

提示

所有 JSON 函数和运算符都列在导航栏和概述页面

通过生成列加速您的查询

语法

parse_json(string_expr)

参数

string_expr: 表示字符串的表达式。仅支持 STRING、VARCHAR 和 CHAR 数据类型。

返回值

返回 JSON 值。

注意:如果字符串无法解析为标准 JSON 值,PARSE_JSON 函数将返回 NULL (参见示例 5)。 有关 JSON 规范的信息,请参阅 RFC 7159

示例

示例 1:将 1 的 STRING 值转换为 1 的 JSON 值。

mysql> SELECT parse_json('1');
+-----------------+
| parse_json('1') |
+-----------------+
| "1" |
+-----------------+

示例 2:将 STRING 数据类型的数组转换为 JSON 数组。

mysql> SELECT parse_json('[1,2,3]');
+-----------------------+
| parse_json('[1,2,3]') |
+-----------------------+
| [1, 2, 3] |
+-----------------------+

示例 3:将 STRING 数据类型的对象转换为 JSON 对象。

mysql> SELECT parse_json('{"star": "rocks"}');
+---------------------------------+
| parse_json('{"star": "rocks"}') |
+---------------------------------+
| {"star": "rocks"} |
+---------------------------------+

示例 4:构造一个 NULL 的 JSON 值。

mysql> SELECT parse_json('null');
+--------------------+
| parse_json('null') |
+--------------------+
| "null" |
+--------------------+

示例 5:如果字符串无法解析为标准 JSON 值,PARSE_JSON 函数将返回 NULL。 在此示例中,star 未用双引号 (") 括起来。 因此,PARSE_JSON 函数返回 NULL

mysql> SELECT parse_json('{star: "rocks"}');
+-------------------------------+
| parse_json('{star: "rocks"}') |
+-------------------------------+
| NULL |
+-------------------------------+

示例 6:如果 JSON 键包含“.”,例如“a.1”,则必须使用“\”转义,或者需要将整个键值与单引号中的双引号一起括起来。

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

关键词

parse_json, parse json