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