跳到主要内容

JSON_QUOTE

描述

将输入的字符串参数用双引号包围,并对字符串中的特殊字符和控制字符进行转译,该函数的主要用途是将字符串转换为合法的 json 字符串。

特殊字符包括:

  • 引号 (")
  • 反斜杠 (\)
  • Backspace (\b)
  • 换行 (\n)
  • 回车 (\r)
  • 水平制表符 (\t)

控制字符包括:

  • CHAR(0) 被转义为 \u0000

语法

JSON_QUOTE (<str>)

参数

<str> 字符串类型,要括起来的值。

返回值

返回被双引号括起来的字符串

使用说明

  • 如果参数是 NULL 返回 NULL。
  • 如果参数中的字符是 转义符号(\) + 非转义字符的情况,转义符号会被删除,参考示例 4 和 5.

示例

  1. 双引号被转义

    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." |
    +------------------------------------------------------------+
  2. 特殊字符的转义

    select json_quote("\\ \b \n \r \t");
    +------------------------------+
    | json_quote("\\ \b \n \r \t") |
    +------------------------------+
    | "\\ \b \n \r \t" |
    +------------------------------+
  3. 控制字符字符转义

    select json_quote("\0");
    +------------------+
    | json_quote("\0") |
    +------------------+
    | "\u0000" |
    +------------------+
  4. 转义符号 + 非转义字符的情况

    select json_quote("\a");
    +------------------+
    | json_quote("\a") |
    +------------------+
    | "a" |
    +------------------+
  5. 非 0 的不可打印字符

    select json_quote("\1");
    +------------------+
    | json_quote("\1") |
    +------------------+
    | "1" |
    +------------------+