JSON 字符串转义与反转义
转义文本并解码 JSON 字符串,明确显示停止原因
浏览器本地处理;不自动保存输入。输入最多 1 MiB。
粘贴或编辑时,浏览器可能将 CRLF 和孤立 CR 转成 LF;此时字节数基于文本框内容。需要核对文件原始字节时,请读取 UTF-8 文件并保持未编辑;文件 BOM 会保留用于检查。
输出最多 4 MiB。反转义仅接受 JSON 字符串,保留空字符串结果;孤立代理项会报错,避免 UTF-8 导出悄悄替换字符。
无外层引号模式仍要求 JSON 字符串内部语法。HTML 敏感转义处理 <、>、&、U+2028 和 U+2029,不是通用 HTML 属性、URL 或脚本净化器。连续解码最多 5 层,停止原因显示在结果中。
输入或选项改变后,请重新处理以生成当前结果。
工具说明
把多行文本变成 JSON 字符串值,或解码响应内部再次编码的字符串。工具遵循 JSON 字符串语法处理引号、反斜杠、控制字符和 Unicode;可选 ASCII 输出将 UTF-16 码元写为转义,补充平面字符使用代理对。无外层引号模式仍要求正确的字符串内部转义。连续解码最多五层,结果会区分普通文本、下一层不合法及达到层数限制。空字符串仍是可复制的有效结果;孤立代理项会报错,避免 UTF-8 导出替换原字符。输入最多 1 MiB,输出最多 4 MiB;长结果只缩短预览,复制与下载保留完整的已接受结果。 粘贴或编辑可能将 CRLF 及孤立 CR 转为 LF。核对原始字节时请读取 UTF-8 文件并保持文本未编辑;文件 BOM 字节会保留。
场景配方
把多行消息放入 API 测试数据
目标:生成完整 JSON 字符串值,并核对解码后的文本。
- 选择转义模式,粘贴含真实换行和 Emoji 的消息,保持外层双引号开启。
- 处理后把完整结果复制到测试数据的一个值位置;仅在目标环境需要时开启 ASCII 输出。
- 切换解码模式,粘贴刚才的带引号值并处理,检查恢复的换行和 Emoji,再使用完整测试数据。
结果:带引号 JSON 字面量与解码后的原文表示相同的 Unicode 字符串。
失败门诊(高频踩坑)
无外引号输入处理失败
原因:省略外层引号不意味着允许未转义的内部引号或真实控制字符。
修复:转义内部引号,用 \n 表示换行,或先在转义模式处理原始文本。
连续解码后仍有引号
原因:下一层可能不合法,也可能达到五层上限。
修复:查看停止原因,检查剩余文本后再决定是否继续解码。
结果为空但处理成功
原因:原始输入为空字符串,或解码得到空字符串。
修复:按需要使用零字节结果,仍可下载和复制。
粘贴后的字节数与文件不同
原因:浏览器文本框可能把 CRLF 和孤立 CR 归一为 LF。
修复:需要比较字节或换行时,读取原始 UTF-8 文件并保持未编辑。编辑后切换为文本框归一化内容。
生产可用片段
同一个字符串的两种表示
text
原始文本:first line<LF>你好 😀
JSON 字符串:"first line\n你好 😀"
ASCII JSON:"first line\n\u4f60\u597d \ud83d\ude00"
两种 JSON 表示解码后得到相同原文。
上面的 <LF> 标记代表真实换行。常见问题
无外层引号输入如何工作?
工具补上外层 JSON 双引号;内部引号、反斜杠和控制字符仍须符合 JSON 字符串内部语法。解码模式不接受原始换行。
解码后的空字符串算错误吗?
不算。字面量 "" 解码后为零 UTF-8 字节的空结果,仍可复制和下载。
为什么拒绝孤立代理项?
孤立 UTF-16 代理项无法原样表示为 UTF-8,浏览器 Blob 导出会替换它。有效的 \uD83D\uDE00 代理对可解码为 😀,占 4 个字节。
转义 HTML 敏感字符等于 HTML 净化吗?
不等于。该选项只在 JSON 表示中转义 <、>、&、U+2028 和 U+2029。HTML 属性、URL、模板和可执行脚本仍需适合目标上下文的处理。
连续解码什么时候停止?
关闭连续模式时只解一层;开启后,当前文本不再以 JSON 字符串开始、下一层字符串不合法或已解五层时停止,并显示原因。
复制长预览会丢掉后半部分吗?
不会。预览只显示前 65,536 个 UTF-16 码元,复制和下载使用最多 4 MiB 的完整已接受结果。修改输入或选项会撤销旧输出。 需要保留原始 CRLF 时请读取 UTF-8 文件;粘贴或编辑可能归一化换行。
继续浏览