从数据格式来讲,我们获取到的是一个 HTML 转义过的 JSON 字符串。HTML 转义会将一些特殊
字符(例如 " 和 <)转义为其 HTML 实体形式,如 "(代表 ")和 >(代表 >)。
在 JSON 字符串中," 和 > 需要转换回其原始字符,才能正确解析。
所以解决办法我们可以通过下面的步骤进行解决:
1. 将 HTML 实体转换为普通字符
需要先将转义的 JSON 字符串恢复成标准 JSON 格式。可以使用一个简单的 HTML 解码工具或函数来做到这一点。
在 JavaScript 中,可以使用以下方法将 HTML 实体转换为普通字符:
function decodeHtmlEntities(str) {
const txt = document.createElement("textarea");
txt.innerHTML = str;
return txt.value;
}
2. 使用解码后的字符串进行 JSON.parse
将解码后的字符串传递给 JSON.parse
来解析 JSON 数据。
// 假设这是你需要转义的 JSON 字符串
const escapedString = '[{"BUILDYEAR":"null->2020","ID":"null->1dfdbbdb49315fa4ef6d766e96bd1b9e"}';
// 解码 HTML 实体
const jsonString = decodeHtmlEntities(escapedString);
// 解析 JSON
try {
const data = JSON.parse(jsonString);
console.log(data,"需要得到的转译后的数据格式");
} catch (error) {
console.error('JSON parsing error:', error);
}