JSON_QUOTE
描述
将输入的字符串参数用双引号包围,并对字符串中的特殊字符和控制字符进行转译,该函数的主要用途是将字符串转换为合法的 json 字符串。
特殊字符包括:
- 引号 (
"
) - 反斜杠 (
\
) - Backspace (
\b
) - 换行 (
\n
) - 回车 (
\r
) - 水平制表符 (
\t
)
控制字符包括:
CHAR(0)
被转义为\u0000
语法
JSON_QUOTE (<str>)
参数
<str>
字符串类型,要括起来的值。
返回值
返回被双引号括起来的字符串
使用说明
- 如果参数是 NULL 返回 NULL。
- 如果参数中的字符是 转义符号(
\
) + 非转义字符的情况,转义符号会被删除,参考示例 4 和 5.
示例
-
双引号被转义
select json_quote('I am a "string" that contains double quotes.');
+------------------------------------------------------------+
| json_quote('I am a "string" that contains double quotes.') |
+------------------------------------------------------------+
| "I am a \"string\" that contains double quotes." |
+------------------------------------------------------------+ -
特殊字符的转义
select json_quote("\\ \b \n \r \t");
+------------------------------+
| json_quote("\\ \b \n \r \t") |
+------------------------------+
| "\\ \b \n \r \t" |
+------------------------------+ -
控制字符字符转义
select json_quote("\0");
+------------------+
| json_quote("\0") |
+------------------+
| "\u0000" |
+------------------+ -
转义符号 + 非转义字符的情况
select json_quote("\a");
+------------------+
| json_quote("\a") |
+------------------+
| "a" |
+------------------+ -
非 0 的不可打印字符
select json_quote("\1");
+------------------+
| json_quote("\1") |
+------------------+
| "1" |
+------------------+