JSON ESCAPE / UNESCAPE

JSON 转义与去转义:在文本和字符串字面量之间转换。

当 JSON 需要嵌入 JavaScript 字符串、日志、配置或请求参数时,用转义生成带外层双引号的安全字符串字面量;拿到该字面量后,也可以还原原始 JSON 文本。

转义输入普通 JSON 文本;去转义输入带外层双引号的 JSON 字符串字面量。
输入文本0 字符 · 0 行
转换结果本地生成
转义或还原后的文本会显示在这里。
“去转义”遵循 JSON 字符串语法:输入必须是一个完整的、使用双引号包裹的 JSON 字符串字面量,而不是裸露的 \n\" 片段。

JSON 转义到底改变了什么?

JSON 文本本身可以包含双引号、反斜杠和换行。当它需要放进另一个字符串中时,这些字符会与外层字符串的语法冲突。转义会使用反斜杠表示它们,并在整体外面加上一对双引号;原始数据没有被格式化或重排,只是换了一种可嵌入的表达方式。

原始字符转义表示为什么需要
双引号 "\"避免提前结束外层 JSON 字符串。
反斜杠 \\\保留原来的转义含义。
换行\n让多行文本可以放在同一个字符串字面量中。
制表符\t避免控制字符破坏 JSON 语法。

什么时候应该转义,什么时候应该格式化?

需要转义

你要把一段 JSON 放进另一个 JSON 字段、JavaScript 字符串、日志字段或需要字符串参数的配置项。

需要格式化

你只是想阅读接口响应、检查缩进、对比字段或复制一份标准 JSON 请求体。

需要压缩

你有合法 JSON,目标是减少传输中的空白字符,而不是把它当作字符串内容。

需要修复

输入本身不合法,例如单引号、末尾多余逗号或括号缺失;此时先到 JSON 修复页处理。

去转义失败,通常是这几种原因

  1. 忘了粘贴最外层双引号。去转义操作读取的是完整 JSON 字符串,而不是其中的一段字符。
  2. 反斜杠在复制过程中又被某一层语言或命令行处理过,需要确认你粘贴的是实际文本,而不是已经被解释后的显示结果。
  3. 字符串中存在 \x 之类 JSON 不支持的转义写法。JSON 只接受标准的引号、反斜杠、斜杠、控制字符和 \uXXXX 转义。
转义不等于加密,也不会隐藏敏感数据。它只解决文本在另一层字符串语法中的表示问题;密钥、令牌和个人信息不应因此被放进公开日志或前端代码。

常见问题

转义后的结果还是合法 JSON 吗?
是。它是一个 JSON 字符串值,内容是原始 JSON 文本;如需恢复对象,还需要在代码中再执行一次 JSON 解析。
为什么去转义后没有自动格式化?
去转义只恢复字符串内容,不改变其中空白和字段顺序。恢复后可前往 JSON 格式化页继续处理。
可以处理中文和 Emoji 吗?
可以。浏览器会保留 Unicode 字符;只有需要表达控制字符或引号时才使用相应的 JSON 转义。