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

JavaScript处理JSON时替换单反斜杠为双反斜杠后双引号丢失问题

问题原因

你当前的写法破坏了JSON序列化后的固定转义结构:

  • JSON.stringify 输出的字符串中,\\" 是JSON用来标识字符串内部双引号的标准转义格式,你的正则直接将\\"替换为\\,相当于直接删除了后面的双引号,自然会导致原内容里的双引号丢失。
  • 不要直接修改序列化后的JSON字符串,很容易打乱JSON本身的转义规则,引发解析异常。

解决方案

优先直接操作原始JS对象的字符串字段,单独做反斜杠替换,完全不影响JSON的转义结构:

var json = {
    "DateToday": "2021-08-11",
    "MetaData": [
        {
            "id": "222",            
            "nameUsed": " \"data\" somemorefillerdata» - somemorefillerdata «somemorefillerdata»",
            "type": "movies"
        }
    ]
}

// 遍历目标字段替换单个反斜杠为双反斜杠
json.MetaData.forEach(item => {
  // 正则匹配所有字面反斜杠,替换为双反斜杠
  item.nameUsed = item.nameUsed.replace(/\\/g, '\\\\')
})

// 后续序列化、解析都不会丢失内容
let newJson = JSON.stringify(json)
let parseResult = JSON.parse(newJson)
console.log(parseResult)

运行后nameUsed字段的双引号会完整保留,同时反斜杠会替换为双反斜杠。如果需要处理对象内所有字符串字段,补充递归遍历逻辑处理所有字符串类型的属性即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:48:00