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