在Node.js中解析JSON时出现问题



我正在尝试解析如下所示的JSON:

{ "values" : [{ "alpha":8 },{ "beta":4 },{ "gamma":-3 } ]}

我用:console.log(msg.values.alpha)解析它,得到:

Missing error handler on `socket`.
TypeError: Cannot read property 'alpha' of undefined

这就是我在其他网站上看到的做法。使用console.log(msg.values)返回undefined,仅运行console.log(msg)就返回正确的JSON。我见过其他人有这个问题,但据说所做的一切都不起作用。谢谢

不要忘记使用JSON.parse 将其解析为对象

msg.values是一个数组。从技术上讲,您必须通过msg.values[0].alpha. 访问它

更好的解决方案

如果使用下划线npm install underscore

var _ = require('underscore');
var msg = JSON.parse('{ "values" : [{ "alpha":8 },{ "beta":4 },{ "gamma":-3 } ]}');
var alpha = _.find(msg.values, function (value) {
    return value.hasOwnProperty('alpha');
}).alpha;

下划线解决方案将允许您不依赖于数组的顺序,因此它可能是更好的样式。


这是我在浏览器中运行的一段代码。

相关内容

  • 没有找到相关文章

最新更新