我从通过NodeJS的API调用中获得了与JSON类似的数据作为回报。

我得到的答复是:

{ abc: 10,
  qwe: 5 }


如果以上显示如下:

{ "abc": 10,
  "qwe": 5 }


我本可以使用JSON.parse函数,但是前者不能与JSON.parse一起使用。

有什么办法可以从该响应中获取qwe的值?

最佳答案

选项1:已经是一个对象。

您显示的项目已经是一个对象。它不需要解析。 JSON.parse()旨在通过一个字符串并将其变成一个对象。只需使用对象本身即可。

例:

const object = {abc:10, qwe:5};

console.log(object.abc);       // > 10
console.log(object["qwe"]);    // > 5


选项2:这是非JSON字符串。

在这种情况下,也许您可​​以预测模式并手动将其转换为稍后可以解析的JSON格式?

就像是:

const nonJson = "{abc: 10, qwe: 5 }";
let jsoned = nonJson.replace(/(:\s+)/g, "\":\"");
jsoned = jsoned.replace(/(,\s+)/g, "\",\"");
jsoned = jsoned.replace(/({\s*)/, "{\"");
jsoned = jsoned.replace(/(\s+})/, "\"}");

const object = JSON.parse(jsoned);

10-08 17:01