toolgarden.xyz
EN

JSON 压缩转义

将 JSON / JSONC / JSON5 压缩并转义为可嵌入字符串的形式,也支持反向反转义还原,浏览器本地完成,无需上传。

输入

输出

结果将显示在这里

工具说明

JSON 转义解决的是“把一段 JSON 放进另一个字符串”时的语法冲突。双引号、反斜杠、换行和制表符在字符串里都有特殊含义,直接粘贴会截断宿主字符串;转义后它们分别写成带反斜杠的序列,数据本身并没有改变。

工具会先解析并压缩输入,再对字符串边界做转义,因此既能发现原始 JSON 的语法错误,也能避免把无效内容包装成看似正确的字符串。反转义用于还原日志、环境变量或源码中的 JSON 字符串。

使用步骤

  1. 确认处理方向

    需要嵌入源码或配置时选择压缩转义;拿到带反斜杠的字符串并想恢复结构时选择反转义。

  2. 粘贴完整内容

    转义模式应输入可解析的 JSON;反转义模式输入字符串内容本身,不要额外添加宿主语言外层引号。

  3. 检查输出再复制

    重点确认换行、引号和反斜杠是否符合目标系统的语法,随后复制结果。

输入与输出示例

同一段 JSON 作为字符串值嵌进另一段 JSON 时的形态变化。注意每个双引号前多出的反斜杠。

原始 JSON
{
  "host": "db.internal",
  "port": 5432
}
转义后(可作为字符串值)
"{\"host\":\"db.internal\",\"port\":5432}"

支持范围与限制

两个方向
压缩并转义为可嵌入的字符串,或反转义还原成可读 JSON
转义的字符
双引号、反斜杠、换行、制表符、回车等控制字符
为什么需要
把一段 JSON 作为字符串值放进另一段 JSON、写进配置字段或数据库列时必须先转义
反转义的用途
还原从日志、数据库字段里复制出来的、每个引号前都带反斜杠的文本
多层嵌套
嵌套两层就需要转义两次,反转义同理,层数不对会解析失败
处理位置
全部在浏览器内完成,输入不上传

典型使用场景

  • 写入环境变量

    把多行配置压成单行并转义,便于放进只接受字符串的 CI 参数或容器配置。

  • 分析日志字段

    日志系统常把请求体再次 JSON 编码,反转义后才能格式化并检查真实字段。

  • 把 JSON 嵌进另一段 JSON

    接口需要在某个字段里携带一整段 JSON 时,必须先转义成字符串才能作为值传输。

使用前需要知道的事

  • JSON 转义不等于 URL 编码或 Base64。目标系统要求哪种表示方式,应以它的接口文档为准。
  • 反转义会解释反斜杠序列;原本需要保留的反斜杠必须成对出现,否则可能被当成控制字符。
  • 输入中的 JSONC 或 JSON5 扩展语法会在解析后按标准 JSON 输出,注释不会保留。

相关概念

escape sequence
用反斜杠加字符表示无法直接写入字符串的内容,例如换行写成 \n,双引号写成 \"。
double encoding
同一段数据被重复包装为 JSON 字符串,表现为大量连续反斜杠。每反转义一层只应移除一层包装。

常见问题

JSON 转义和反转义有什么区别?
转义会把 JSON 压缩成一行并对引号、换行等特殊字符加反斜杠,便于嵌入字符串;反转义则把带转义的字符串还原成可读的 JSON。
什么时候需要转义 JSON?
当你要把一段 JSON 作为字符串值放进另一段 JSON、代码或数据库字段时,需要先转义,避免引号和换行破坏结构。
转义会上传我的数据吗?
不会。转义和反转义都在浏览器本地完成,内容不会上传到服务器。
为什么反斜杠越来越多?
每嵌套一层就要转义一次。JSON 放进 JSON 是两层,再放进第三层就是四个反斜杠。转义几次就要反转义几次,层数搞错就会解析失败。
转义和 URL 编码是一回事吗?
不是。JSON 转义处理的是 JSON 语法里的特殊字符(引号、反斜杠、换行),URL 编码处理的是 URL 里的保留字符。放进 URL 参数的 JSON 通常两步都要做,顺序是先转义再 URL 编码。