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

JavaScript解析JSON时result值不符预期 如何修正代码向API传值

问题根因

  • 字符串内使用HTML转义实体"表示双引号,不符合JSON语法规范,JSON解析器无法识别这类HTML实体,首先就会抛出解析异常。
  • JavaScript字符串字面量中的\x5C会被JS引擎优先解析为单个反斜杠\,最终传入JSON解析器的result对应内容会变成MwLYo\/Awp==,JSON解析时会将\/转义序列自动转换为普通斜杠/,导致解析后的result值和预期不符。

修正方案

方案1:手动修正字符串语法(推荐)

直接把字符串中的所有"替换为半角双引号",同时给\x5C额外增加一个反斜杠做转义,避免JS引擎提前解析转义序列:

var abc = '[{"id": 2,"result": "MwLYo\\\\x5C/Awp=="}]'
console.log(JSON.parse(abc))
// 解析后result值为:MwLYo\x5C/Awp==

方案2:自动解码HTML实体(适用于从HTML中直接获取的字符串)

如果字符串是从HTML页面中直接复制、无法手动修改格式的场景,可以先做HTML实体解码再执行JSON解析:

var abc = '[{"id": 2,"result": "MwLYo\\\\x5C/Awp=="}]'

// HTML实体解码方法
function decodeHtmlEntity(str) {
  const tempElem = document.createElement('textarea')
  tempElem.innerHTML = str
  return tempElem.value
}

const parsedData = JSON.parse(decodeHtmlEntity(abc))
console.log(parsedData)

处理后得到的parsedData中的result字段就是正确值,可以直接传给API使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:45:05