You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript在浏览器中输出保留原格式的含嵌套引号文本?

解决document.write输出JSON时丢失转义与换行的问题

问题原因

直接用<pre>包裹JSON字符串通过document.write输出时,JavaScript会自动解析字符串中的转义字符(比如\\变成\、\"变成"、\n被提前解析),导致原始JSON的转义结构丢失,换行符也无法正确在<pre>中生效。

解决方案

根据你的数据源类型,选择以下两种方法:

方法1:从JavaScript对象生成格式化JSON

如果你的数据是JavaScript对象,直接用JSON.stringify生成带格式的JSON字符串,它会自动处理转义与换行:

// 原始数据对象
const data = {
  name: 'John "Doe"',
  path: 'C:\\Users\\John',
  bio: 'Hello\nWorld'
};

// 生成带缩进、换行的JSON字符串,自动处理转义
const formattedJson = JSON.stringify(data, null, 2);

// 输出到<pre>标签
document.write(`<pre>${formattedJson}</pre>`);

方法2:处理已存在的JSON字符串

如果你已经有一个原始的JSON字符串(比如从后端获取的),需要对其进行二次转义,避免JavaScript解析转义字符:

// 假设这是你拿到的原始JSON字符串
const rawJson = '{"name":"John \"Doe\"","path":"C:\\\\Users\\\\John","bio":"Hello\\nWorld"}';

// 用JSON.stringify将字符串转义为可安全输出的格式,再去掉首尾自动添加的双引号
const safeJson = JSON.stringify(rawJson).slice(1, -1);

// 输出到<pre>标签
document.write(`<pre>${safeJson}</pre>`);

效果说明

以上两种方法输出的内容会完全保留原始JSON的嵌套双引号、转义斜杠与换行符,和代码块的显示效果一致。

内容的提问来源于stack exchange,提问作者PKHunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 18:05:20