繁体   English   中英

在NodeJS中解析类似JSON的数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM