在 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。
我正在尝试解析如下所示的 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。