在 Node.js 中解析 JSON 时遇到问题

Trouble parsing JSON in Node.js

我正在尝试解析如下所示的 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) returns undefined 和 运行 console.log(msg) returns 适当的 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;

下划线解决方案可以让您不依赖数组的顺序,因此它的样式可能更好。


Here 是我的代码 运行 在浏览器中的 fiddle。