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

JavaScript解析含特殊字符的JSON响应遇嵌套引号问题求助

解决JSON字符串转义引号解析错误的方法
  • 优先尝试两次JSON.parse:服务端返回的字符串大概率是被双重转义的JSON(即把合法JSON字符串再次转义后返回)。通过两次解析可以自动处理转义逻辑,避免手动替换的错误:

    // 假设原始响应字符串为 responseStr
    try {
      const jsonStr = JSON.parse(responseStr);
      const finalData = JSON.parse(jsonStr);
      console.log(finalData); // 得到正确解析的对象
    } catch (err) {
      console.error("解析失败:", err);
    }
    

    这个方法能自动区分结构引号和值内部的转义引号,不会破坏值里的合法引号。

  • 如果两次解析无效,用精准正则替换:只替换JSON结构中的转义引号(键/值的包裹引号),保留值内部的转义引号。正则会匹配紧跟在{、:、,之后,或者紧跟在,、}之前的\",替换为":

    responseStr = responseStr.replace(/(?<=[:{,])\\"|\\(?=["}])/g, '"');
    const finalData = JSON.parse(responseStr);
    

    注意:正则处理JSON存在边界情况风险,仅在两次解析无效时使用。

针对你提到的原始响应\"attr1\":\"my name is \"Pippo\"\":

  • 两次解析后会得到{ attr1: "my name is \"Pippo\"" },值里的引号被正确保留。
  • 用正则替换后得到合法JSON字符串"attr1":"my name is \"Pippo\"",解析后同样得到正确对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:31:04