解码字符串,以便我可以解析JSON

时间:2019-01-08 17:24:21

标签: javascript json

我的JSON字符串如下所示

[{"id":0,"nextCallMills":0,"delay":0,"start":"...

这在JSON.parseString()中不起作用

unescape()和URIdecode()无效。如何转换此字符串,以便parseString将其理解为JSON?

2 个答案:

答案 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
  ...