我的JSON字符串如下所示
[{"id":0,"nextCallMills":0,"delay":0,"start":"...
这在JSON.parseString()中不起作用
unescape()和URIdecode()无效。如何转换此字符串,以便parseString将其理解为JSON?
答案 0 :(得分:0)
它是html编码的,与URI编码不同。 AFAIK没有内置的功能来解码html实体。但是,此答案提供了一个简单的功能: https://stackoverflow.com/a/43282001/2681964
从提到的答案中复制了代码段
function convertHTMLEntity(text){
const span = document.createElement('span');
return text
.replace(/&[#A-Za-z0-9]+;/gi, (entity,position,text)=> {
span.innerHTML = entity;
return span.innerText;
});
}
console.log(JSON.parse(convertHTMLEntity(your_encoded_json)));
但是,它使用DOM,因此只能在浏览器中使用。
假设仅对"
进行了编码,并且您需要在非浏览器环境中运行此代码,则可以使用
console.log(JSON.parse(your_encoded_json.replace(/"/g, '"')));
答案 1 :(得分:0)
用ascii值"
替换"
:
JSON.parse("[{"id":0,"nextCallMills":0}]".split('"').join('"'))
收益:
(1) […]
0: {…}
id: 0
nextCallMills: 0
...