跳到主要内容

JSON_UNQUOTE

描述

这个函数将去掉 JSON 值中的引号,并将结果作为 utf8mb4 字符串返回。如果参数为 NULL,则返回 NULL。

在字符串中显示的如下转义序列将被识别,对于所有其他转义序列,反斜杠将被忽略。

转义序列序列表示的字符
"双引号 "
\b退格字符
\f换页符
\n换行符
\r回车符
\t制表符
\反斜杠 \
\uxxxxUnicode 值 XXXX 的 UTF-8 字节

语法

JSON_UNQUOTE (<a>)

参数

参数描述
<a>要去除引号的元素。

返回值

返回一个 utf8mb4 字符串。特殊情况如下:

  • 如果传入的参数为 NULL,返回 NULL。
  • 如果传入的参数不是一个带有双引号的值,则会返回值本身。
  • 如果传入的参数不是一个字符串,则会被自动转换为字符串后,返回值本身。

举例

SELECT json_unquote('"doris"');
+-------------------------+
| json_unquote('"doris"') |
+-------------------------+
| doris |
+-------------------------+
SELECT json_unquote('[1, 2, 3]');
+---------------------------+
| json_unquote('[1, 2, 3]') |
+---------------------------+
| [1, 2, 3] |
+---------------------------+
SELECT json_unquote(null);
+--------------------+
| json_unquote(NULL) |
+--------------------+
| NULL |
+--------------------+
SELECT json_unquote('"\\ttest"');
+--------------------------+
| json_unquote('"\ttest"') |
+--------------------------+
| test |
+--------------------------+
select json_unquote('"doris');
+------------------------+
| json_unquote('"doris') |
+------------------------+
| "doris |
+------------------------+
select json_unquote('doris');
+-----------------------+
| json_unquote('doris') |
+-----------------------+
| doris |
+-----------------------+
select json_unquote(1);
+-----------------------------------------+
| json_unquote(cast(1 as VARCHAR(65533))) |
+-----------------------------------------+
| 1 |
+-----------------------------------------+