JSON_UNQUOTE()¶
简介¶
取消引用JSON值,并以字符串形式返回结果。
语法¶
JSON_UNQUOTE(json_val)
说明¶
1.如果参数为NULL,则返回NULL。
2.如果值以双引号开始和结束,但不是有效的JSON字符串,则会发生错误。
3.对于包含转义字符的JSON值,在使用此函数时,会对其内容进行转义,部分转义字符的说明如下:
(1)\" 双引号字符
(2)\b 回退字符
(3)\f 换页字符
(4)\n 换行字符
(5)\r 回车字符
(6)\t 制表字符
(7)\ 反斜杠字符
(8)\uXXXX UTF-8字节,用于Unicode值XXXX
注解
命令行工具查看存在差异转义符mysql和oscar存在差异,例如\f,mysql中显示为方框,oscar显示\f的ascii码。通过MySQL驱动获取json_unquote的结果拿到的数据也是\f,推断命令行工具做过特殊处理导致与oscar显示不一致,因此 此接口只负责填充转义符即可。
示例¶
SELECT '"abc"', JSON_UNQUOTE('"abc"');
?COLUMN?(varchar) |JSON_UNQUOTE(text) |
-----------------------------------------------
"abc" |abc |
总数目:1
SELECT '[1,2,3]', JSON_UNQUOTE('[1,2,3]');
?COLUMN?(varchar) |JSON_UNQUOTE(text) |
-----------------------------------------------
[1,2,3] |[1,2,3] |
总数目:1
SELECT JSON_UNQUOTE('"\n"');
JSON_UNQUOTE(text) |
------------------------
|
总数目:1
SELECT JSON_UNQUOTE('"\b"');
JSON_UNQUOTE(text) |
------------------------
|
总数目:1
SELECT JSON_UNQUOTE('"\f"');
JSON_UNQUOTE(text) |
------------------------
|
总数目:1
SELECT JSON_UNQUOTE('"\\t\\u0032"');
JSON_UNQUOTE(text) |
------------------------
\t\u0032 |
总数目:1