Skip to content

JSON 字符串转义工具

在浏览器中将任意文本或 JSON 转义为合法的 JSON 字符串字面量。处理引号、换行、制表符、Unicode 与斜杠。100% 私密,无需上传,即时完成。

无追踪 浏览器中运行 免费
选项
包裹双引号
转义非 ASCII(\uXXXX)
转义正斜杠(\/)
0 字符
转义字符串
0 字符
已就 JSON 规范合规性、代理对正确性、往返安全性及 HTML 嵌入斜杠转义进行审查 — Go Tools 工程团队 · 2026年6月10日

什么是 JSON 转义?

JSON 转义是把原始字符串转换为可安全嵌入 JSON 文档的形式的过程。JSON 有一小组带结构含义的字符——双引号界定字符串、反斜杠开启转义序列——以及不允许字面出现在字符串内的控制字符(换行、制表符)。转义把它们各自替换为安全的双字符序列(\"、\\、\n、\t)或 \uXXXX Unicode 转义,使结果字符串在任何地方都能干净解析。

你需要 JSON 转义的频率可能比你以为的高。最常见的情形是 JSON-in-JSON:webhook 信封、消息队列负载或审计日志把请求体作为字符串字段存储,这意味着内层 JSON 必须先转义才能赋值。另一种是手写 JSON 配置:把多行 shell 脚本、SQL 查询或代码片段粘贴进单个 JSON 值,需要把每个换行变成 \n。第三种是在 curl 等工具中手动构造 REST 请求体,带引号的 JSON 字符串必须转义才能在 shell 和 HTTP 层中存活。

相比朴素的转义器,本工具有三个差异点。第一,它基于精确的 JSON 规范规则——与合规序列化器相同的逻辑——所以输出可无损往返:在这里转义,在任何地方解析,逐字节取回。第二,可选的 ASCII 安全模式把每个非 ASCII 字符(包括按代理对处理的星平面 emoji)转为 \uXXXX,供不能可靠处理 UTF-8 的系统使用。第三,一切都 100% 在你的浏览器中运行——你常含 PII、令牌和密钥的负载绝不接触服务器。要反向操作,请使用我们的 JSON 反转义 工具;要先校验 JSON,请看 JSON 格式化

// Input text
She said "hi"
then left.

// Escaped (Wrap on) — identical to JSON.stringify(input)
"She said \"hi\"\nthen left."

// Escaped (Wrap off) — just the body, for hand-built JSON
She said \"hi\"\nthen left.

// JSON-in-JSON
{"a":1}  ->  "{\"a\":1}"  ->  {"payload": "{\"a\":1}"}

核心功能

符合规范的转义

基于 JSON 规范的精确规则构建——引号、反斜杠、换行、制表符、回车和控制字符的转义与合规序列化器完全一致。输出可在任何 JSON 解析器中无损往返。

带引号或不带引号的输出

「包裹双引号」开启时给出完整的 JSON 字符串字面量(与 JSON.stringify 相同);关闭时只给出转义后的内容,适合你在手写 JSON 文档中自己打引号的场景。

ASCII 安全的 \uXXXX 模式

可选地把每个 U+007F 以上的字符转为 Unicode 转义,emoji 等星平面字符按正确的代理对处理。输出为纯 ASCII,对错误处理 UTF-8 的老旧管道也安全。

HTML 安全的斜杠转义

「转义正斜杠」把 / 变成 \/,化解 </script> 序列,使 JSON 能内联进 HTML <script> 标签而不会提前关闭它。默认关闭,其它一切场景输出更干净。

用「交换」验证往返

一个「交换方向」按钮就地翻转为反转义模式并把输出回填为输入,于是你能在交付前确认 转义 → 反转义 逐字节返回你的原始文本。

100% 基于浏览器的隐私

所有转义都在客户端运行——你的负载(PII、令牌、密钥)绝不离开浏览器。在 Network 面板验证:粘贴时零请求。这是在线工具中转义敏感数据唯一安全的方式。

示例

把 JSON 嵌入 JSON(JSON-in-JSON)

{"event":"signup","user":{"id":42,"name":"Alice"}}

转义这个对象,使其能作为字符串值存放在另一个 JSON 文档内——例如 webhook 负载字段或 Kafka 消息信封。开启「包裹引号」后,输出即可直接粘贴到冒号之后。

把多行代码片段放进配置字段

function greet(name) {
  return `Hello, ${name}!`;
}

把一个多行 JS 函数转成单行 JSON 字符串。换行变成 \n,反引号模板保持不变——粘贴进 JSON 配置值而不会破坏文件。

含引号和制表符的文本

She said "hello"	then left.

双引号被转义为 \",制表符变成 \t,于是这个字符串可安全放入任何 JSON 解析器、日志行或 REST 请求体。

面向老旧系统的纯 ASCII 输出

Price: 9.99€ — café société

开启「转义非 ASCII」可把 € 和带重音的字母转为 \uXXXX。结果是纯 ASCII,对在传输中破坏 UTF-8 的系统也安全。

如何使用

  1. 1

    粘贴你的文本或 JSON

    在输入框中输入或粘贴任何内容——JSON 对象、代码片段、日志行或纯文本。转义结果即时出现。点击「加载示例」试用 JSON-in-JSON 负载或多行函数等样例。

  2. 2

    选择转义选项

    保持「包裹双引号」开启可得到完整的 JSON 字符串字面量(与 JSON.stringify 相同),关闭则只得到转义后的内容。需要纯 ASCII 的 \uXXXX 输出时切换「转义非 ASCII」,把 JSON 内联进 HTML <script> 标签时切换「转义正斜杠」。

  3. 3

    复制转义后的字符串

    点击「复制」抓取结果,即可粘贴进 JSON 文档、REST 请求体或配置文件。点击「交换方向」翻转为反转义模式以验证无损往返。

常见转义陷阱

双重转义(转义已转义的文本)

转义两次会把 \n 变成 \\n、把 \" 变成 \\\",于是消费方看到的是字面的反斜杠-n 而不是换行。这通常发生在文本已在上游被 JSON 转义过时。先反转义(交换方向)检查,然后只转义一次。

✗ 错误
Input already escaped: line1\nline2
Escaped again -> line1\\nline2  (literal backslash-n)
✓ 正确
Raw input: line1
line2
Escaped once -> line1\nline2  (real newline encoded)

忘记外层引号

「包裹」关闭时你只得到转义后的内容,而非完整的 JSON 字符串。把它直接粘贴到期望值的位置会产生无效 JSON,因为缺少引号。要么保持「包裹」开启,要么确保你自己打引号。

✗ 错误
{"msg": hello \"world\"}
// Missing quotes around the value -> invalid JSON
✓ 正确
{"msg": "hello \"world\""}
// Wrap on supplies the quotes -> valid JSON

不必要地过度转义非 ASCII

当消费方本能正常处理 UTF-8 时还开启「转义非 ASCII」,只会让输出膨胀、损害可读性——café 无缘无故变成 caf\u00e9。除非某个特定的老旧系统需要纯 ASCII,否则请关闭该选项。

✗ 错误
café  ->  caf\u00e9   (no downstream need; just noise)
✓ 正确
café  ->  café         (valid JSON, readable, smaller)

常见用例

JSON-in-JSON Webhook 负载
转义请求体,使其能作为字符串字段存进 webhook 信封、Kafka 消息或审计日志。保持「包裹」开启,输出即可赋给外层文档的某个键。
配置中的多行片段
把多行 shell 脚本、SQL 查询或代码片段变成单个 JSON 字符串值。每个换行变成 \n,JSON 配置文件在单行内保持有效。
手写的 REST 请求体
在把 JSON 字符串放进 curl --data 参数或 HTTP 客户端前先转义,使引号和换行能在 shell 与传输链路中存活而不破坏请求。
日志安全的字符串编码
在把用户提供的内容写入结构化日志行前先转义,防止注入的引号或换行破坏日志格式或下游 JSON 日志解析器。
纯 ASCII 的老旧集成
为 SOAP 网关、邮件头或在传输中破坏 UTF-8 的旧系统生成纯 ASCII 的 \uXXXX 输出,同时仍可被任何现代 JSON 解析器完全解码。
把 JSON 内联进 HTML
转义正斜杠,使 JSON 数据块能直接嵌入服务端渲染页面的 <script> 标签,而不会因数据内的 </script> 提前关闭标签。

技术细节

转义算法
本工具用 JSON 规范的字符串规则序列化你的输入:U+0022 (") → \",U+005C (\) → \\,U+0008 → \b,U+000C → \f,U+000A → \n,U+000D → \r,U+0009 → \t,任何其它 U+0020 以下字符 → \u00XX。开启「包裹」时包含外层双引号;关闭时去掉它们。这与合规序列化器的输出完全一致,保证无损往返。
Unicode 与代理对
默认情况下,U+007F 以上的字符以字面 UTF-8 输出,这是 JSON 允许的。开启「转义非 ASCII」后,每个这样的字符都用其 UTF-16 码元转为 \uXXXX;基本多文种平面之外的字符(emoji、罕见文字)编码为两个 \uXXXX 转义的代理对——例如 😀(U+1F600)变成 \ud83d\ude00,与 JSON 序列化器生成的表示相同。
正斜杠与 HTML 上下文
JSON 不要求转义 /,所以默认保留。启用「转义正斜杠」后,每个 / 变成 \/。这样做唯一的实际理由是 HTML 嵌入:在 <script> 标签内,字面子串 </script> 无论 JSON 上下文如何都会关闭标签,因此把斜杠转义为 <\/script> 可在保持规范有效的同时保护内联的 JSON 完整。

最佳实践

需要完整字面量时保持「包裹」开启
当你需要在代码中赋值或粘贴到 JSON 冒号之后的值时,保持「包裹双引号」开启——输出是与 JSON.stringify 相同的完整、可解析的 JSON 字符串。只有当你自己手打外层引号时才关闭它。
非必要不开启 Unicode 转义
原始 UTF-8 是合法 JSON 且可读性更好。只在某个错误处理 UTF-8 的特定下游系统(老旧 SOAP、某些日志管道、纯 ASCII 源文件)才启用「转义非 ASCII」。默认转义一切只会让输出更杂乱。
只为 HTML 嵌入转义斜杠
正斜杠转义只在一处重要:内联进 HTML <script> 标签的 JSON。在那之外它只增加杂乱而无益处,所以对 REST 请求体、配置文件和消息负载请关闭它。
用「交换」验证往返
在把转义数据送入管道前,点击「交换方向」对其反转义,确认取回原始文本。这能捕捉意外的双重转义——本应是 \n 处出现 \\n 的常见根源。随时可用我们的 JSON 反转义 工具反向操作。

常见问题

这个 JSON 转义工具有什么用?
它能把任意文本——JSON 对象、代码片段、日志行或纯文本——完全在浏览器中转换为合法的 JSON 字符串字面量。会破坏 JSON 文档的特殊字符都会被转义:双引号变成 \",反斜杠变成 \\,换行变成 \n,制表符变成 \t,回车变成 \r,其它控制字符变成 \uXXXX。结果是一个可安全粘贴为 JSON 文档、REST 请求体、配置文件或数据库列值的字符串。所有内容都不会上传——转换 100% 在客户端运行,因此处理含 PII、密钥或内部数据的负载也安全。
JSON 转义和 JSON stringify 有什么区别?
它们是同一核心操作的两种说法。JavaScript 中的 JSON.stringify() 接收一个值并生成它的 JSON 文本表示;当值是字符串时,这意味着用双引号包裹它并转义其中的特殊字符——这正是 JSON 转义。本工具做的就是这件事:开启「包裹双引号」时,输出等于 JSON.stringify(你的文本);关闭它时,你得到不含外层引号的转义内容,正是你手写 JSON、已经自己打了引号时所需的。所以如果你搜索的是 json stringify online,这就是那个工具——它同时给你带引号和不带引号两种形式。
我的数据会被上传到任何地方吗?
不会。所有转义都使用 JavaScript 完全在你的浏览器中运行——你的文本绝不会被传输、存储、记录或在任何服务器上分析。这使该工具对含 PII、认证令牌、内部配置和生产密钥的 API 负载都安全。你可以在浏览器的 Network 面板中验证:输入或粘贴触发零网络请求。不会有针对你输入的 Cookie,也没有捕获你所粘贴内容的第三方分析。
什么时候需要 \uXXXX(转义非 ASCII)选项?
JSON 允许原始 UTF-8,所以默认情况下 é 保持为 é、emoji 保持为 emoji——完全合法且更易读。只有当下游系统不能可靠处理 UTF-8 时才开启「转义非 ASCII」:老旧的 SOAP/XML 网关、某些日志管道、邮件头,或必须保持纯 ASCII 的源文件。开启后,每个 U+007F 以上的字符都会变成 \uXXXX 序列(emoji 等星平面字符会变成代理对,例如 😀 → \ud83d\ude00)。转义后的输出逐字节都是 ASCII,并能在任何合规的 JSON 解析器中解码回原始 Unicode。
如何把一个 JSON 对象嵌入另一个 JSON 字符串(JSON-in-JSON)?
把内层 JSON 粘贴进输入框,保持「包裹双引号」开启,然后复制结果——它现在是一个可赋值给外层文档某个键的转义字符串。例如 {"a":1} 变成 "{\"a\":1}",放到冒号之后:{"payload": "{\"a\":1}"}。这种双重编码在 webhook 信封、消息队列负载,以及把请求体作为字符串存储的审计日志中很常见。要反向操作读取内层对象,请使用我们的 JSON 反转义工具。
「转义正斜杠(\/)」选项有什么用?
正斜杠 / 在 JSON 中是普通字符,无需转义,因此默认保持原样。这个选项只为一种特定情形存在:把 JSON 嵌入 HTML <script> 标签内,此时 </script> 序列会提前关闭标签。把 / 转义为 \/ 会让 </script> 变成 <\/script>,它仍是合法 JSON,但不再是标签终止符。只在把 JSON 内联进 HTML 时启用它;其它所有用途都关闭它以获得更干净的输出。
它能正确处理换行、制表符和控制字符吗?
能。本工具基于 JSON 规范精确的转义规则构建:换行 → \n,回车 → \r,制表符 → \t,退格 → \b,换页 → \f,双引号 → \",反斜杠 → \\,任何剩余的 U+0020 以下控制字符 → \uXXXX。这与合规 JSON 序列化器的输出完全一致,因此结果可无损往返:在这里转义,在任何地方解析,都能逐字节还原你的原始文本。