Skip to content
JSON 转义 / 反转义
Tools

JSON 转义 / 反转义

将原始文本转义为 JSON 安全字符串,并可反转义还原。

Options
0 input chars 0 output chars 0 output bytes

Runs entirely in your browser. Nothing is uploaded.

在线 JSON 转义与反转义 — 免费、私密、即时

这款 JSON 转义工具可将任意文本转换为 JSON 安全字符串,并将已转义的字符串还原为纯文本——双向转换,一站搞定,即时完成,完全在浏览器中运行。粘贴内容,选择转义反转义,复制结果即可。无需安装,无需注册。由于每次转换均在本地执行,您的数据永远不会离开您的设备——安全适用于 API 负载、访问令牌、密码以及任何不希望上传到服务器的机密文本。

这是为 API 负载转义 JSON 字符串、在配置文件中插入多行代码片段或从日志中找到的已转义值恢复原始文本的最快方式。转换使用浏览器原生 JSON 引擎——而非手写的正则表达式——因此输出结果与 JavaScript 中 JSON.stringify 生成的内容完全一致,也符合 Python、Go、Java 和 Ruby 中任何规范兼容解析器的预期。

JSON 中哪些字符需要转义——哪些不需要

JSON 字符串中只有一小部分字符具有特殊含义。双引号 " 必须变为 \",反斜杠 \ 必须变为 \\,空白控制字符分别变为 \b\f\n\r\t。U+0020 以下的任何其他控制字符须写为 \uXXXX 转义序列。其他所有内容——字母、数字、单引号、连字符和普通标点符号——均原样通过,无需改动。这是一个常见的误区:JSON 中单引号无需转义,因为 JSON 字符串使用双引号作为定界符,从不使用单引号。

其中任何一处出错都是 JSON 解析失败的原因。未转义的双引号会提前结束字符串,导致"Unexpected token"错误。单独的反斜杠会被解析为转义序列的开始——如果下一个字符不是有效的转义字符,解析就会失败。字符串中出现字面换行符也不被 JSON 规范所允许。将有问题的值粘贴到转义模式,工具会在一秒内返回正确转义的版本。

转义、反转义、stringify——各模式的作用

转义模式对您的文本进行编码,使其可以存在于 JSON 字符串中。默认情况下,您获得的只是已转义的内容,可直接粘贴到您自己的引号之间;开启用引号包裹后,您将获得一个完整的带引号 JSON 字符串值——正是 JSON.stringify() 所产生的结果。这就是转义(编码特殊字符)与 stringify(编码并用引号包裹)之间的区别。两者产生的输出都会被任何标准 JSON 解析器接受。

反转义模式执行逆向操作,将 \"\\\n\t\uXXXX 解释还原为其所代表的字符。它接受带或不带外围引号的输入,并对格式错误的转义序列报告清晰的错误。交换按钮可将输出重新放入相反模式下的输入框,因此往返转换只需一次点击——转义某内容,验证输出,交换,确认还原了原始内容。

Unicode、反斜杠、Windows 路径与 HTML 安全输出

JSON 默认将 Unicode 存储为原始 UTF-8,但有时您需要纯 ASCII。开启转义非 ASCII 字符 (\uXXXX),每个带重音的字母或表情符号都会变为 \uXXXX 序列——é 变为 \u00e9😀 变为代理对 \ud83d\ude00。这使旧版解析器和纯 ASCII 配置文件在不丢失数据的情况下正常工作。

对于 Windows 文件路径和正则表达式模式,反斜杠加倍是自动完成的:粘贴 C:\Users\me,工具输出 C:\\Users\\me。对于 HTML 嵌入,转义正斜杠选项将 / 重写为 \/,这样字符串值中的闭合 script 标签就无法突破外围 HTML——仍然是可正常解析的有效 JSON,但可安全地内联到服务器端渲染的页面中。JSONLint 等工具可在部署前确认转义后的输出是否有效。

与 JSONLint、jsonformatter.org、VS Code 及服务器端工具的对比

JSONLint 验证整个 JSON 文档是否格式正确。jsonformatter.org 对 JSON 进行格式美化以提高可读性。VS Code 内置格式化程序处理缩进和语法高亮,但不对单个字符串值进行转义或反转义。这些工具都无法填补本工具所覆盖的空白:修复包含特殊字符的单个字符串。使用 jsonformatter.org 进行格式化;使用 JSONLint 进行验证;使用 VS Code 处理完整文件;使用本工具修复导致解析器报错的字符串值。

服务器端 JSON 转义工具虽然存在,但存在一个权衡:您的文本会离开您的设备。如果您正在处理 API 密钥、密码、私有配置或用户数据,将其发送到外部服务器是不必要的风险。本工具在客户端处理一切——没有任何内容被上传、记录或存储。加载后可离线使用,无需任何网络连接。无需创建账户,无速率限制,无文件大小上限。

Frequently asked questions

什么是 JSON 转义?

JSON 转义将会破坏 JSON 字符串的字符替换为反斜杠转义序列,使文本可以安全地存在于 JSON 值中。例如,文本他说"你好"经过双引号转义后变为他说\"你好\"。转义从不改变文本的含义——它只编码 JSON 保留的字符。

如何为 JSON 转义字符串?

在选择转义模式的情况下,将文本粘贴到输入框,JSON 安全版本会立即出现在输出面板中——然后点击复制。工具会自动为您转义双引号、反斜杠、换行符、制表符和控制字符。如果您需要完整的 JSON 字符串值而不仅仅是转义后的内容,请开启"用引号包裹"。无 API 调用,无服务器往返——转换在您的浏览器中使用原生 JavaScript JSON 引擎运行。

JSON 中哪些字符需要转义?

在 JSON 字符串中,您必须转义:双引号 " 为 \",反斜杠 \ 为 \\,以及空白控制字符:退格 \b、换页 \f、换行 \n、回车 \r 和制表 \t。U+0000–U+001F 范围内的任何其他控制字符必须写为 \uXXXX。正斜杠 / 可选择性地转义为 \/,但非必须。字母、数字和普通标点符号(包括单引号)无需转义。

如何反转义 JSON 字符串?

切换到反转义模式,粘贴已转义的字符串(带或不带外围引号均可)。工具会将每个转义序列转换回它所代表的字符,因此第1行\n第2行会变成两个真实的行,\u00e9 会变成 é。使用交换按钮在两种模式之间切换。当您从日志文件或 API 响应中复制了已转义字符串并希望阅读原始文本时,此功能非常有用。

单引号在 JSON 中需要转义吗?

不需要。JSON 字符串始终使用双引号作为定界符,因此单引号(撇号)只是普通字符——没关系仍然是没关系,无需反斜杠。只有双引号 " 和反斜杠 \ (加上控制字符)才需要转义。对于来自 Python 或 Shell 脚本等语言的开发者,这是一个常见的困惑点,因为那些语言中单引号和双引号可以互换使用。

在线转义 JSON 安全吗?

是的。本工具 100% 在客户端运行——所有转义和反转义均在您的浏览器中用 JavaScript 完成,您粘贴的内容永远不会被上传、记录或发送到服务器。这使其对 API 负载、令牌、配置和其他敏感文本都是安全的。关闭标签页后,不会留下任何您使用过它的记录。

转义和 stringify 有什么区别?

转义对文本内的特殊字符进行编码;stringify 在此基础上还将结果用双引号包裹,生成完整的 JSON 字符串值。对于文本她说"你好":转义给出内容她说\"你好\",而 stringify 给出完整值"她说\"你好\""。"用引号包裹"开关在两者之间切换——关闭表示仅内容,开启表示完整带引号字符串(正是 JavaScript 中 JSON.stringify 所产生的结果)。

Related tools

查看全部工具