[英]Parse JSON-like data in NodeJS
我从通过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);
有一种方法可以执行此操作,但是您可以这样做:
var unquotedJson = '{ abc: 10, qwe: 5 }';
var object = eval('('+ unquotedJson +')');
注意:eval仅与受信任的源一起使用,因为它将执行JavaScript代码。
我还应该提到未引用的JSON并不是真正的JSON!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.