JSON 转义字符详解

当 JSON 字符串里出现双引号、反斜杠或换行符时,就需要用转义字符来表示。转义的目的是让这些「有特殊含义的字符」能作为普通文本出现在字符串里,避免破坏 JSON 的结构。本文把 JSON 转义规则一次讲清。

哪些字符需要转义

在 JSON 字符串值中,以下字符必须转义:

字符 转义写法 说明
双引号 " \" 字符串的边界符号,必须转义
反斜杠 \ \\ 转义符本身,必须转义
换行符 \n 控制字符
制表符 \t 控制字符
回车符 \r 控制字符
退格符 \b 控制字符
换页符 \f 控制字符

实际例子

假设要表示这样一句话:He said "Hello",直接写会出错:

{ "msg": "He said "Hello"" }   // ❌ 双引号提前闭合,非法
{ "msg": "He said \"Hello\"" } // ✅ 正确转义

再看一个含路径的例子(Windows 路径常遇到):

{ "path": "C:\Users\Tom" }     // ❌ \U 是非法转义
{ "path": "C:\\Users\\Tom" }   // ✅ 反斜杠转义

Unicode 转义

JSON 还支持用 \uXXXX 表示任意 Unicode 字符,常用于表示非 ASCII 字符或特殊符号:

{ "emoji": "\u2764\uFE0F" }   // 表示 ❤️
{ "cn": "\u4E2D\u6587" }       // 表示 "中文"

不过现代 JSON 解析器都原生支持 UTF-8,中文和 emoji 通常不需要手动转义,直接写原文即可。

什么时候需要手动转义

大多数情况下,转义由 JSON.stringify 自动完成,你几乎不用手动写。需要手动处理的主要场景:

  1. 手写 JSON:在代码里用字符串拼接 JSON 时,容易漏掉转义。
  2. 把 JSON 嵌入另一段 JSON:形成「套娃」时,内层引号需要双重转义。
  3. 把 JSON 写入代码字符串:比如在 JS 里 const s = '{"a":"b"}',引号层级容易混淆。

如何检查转义是否正确

转义写错是 JSON 报错的高发原因。如果你不确定一段 JSON 的转义对不对,最省事的办法是用 JSON 在线校验工具 粘贴进去——它会在解析时立即指出错误位置。

延伸阅读