【发布时间】:2018-03-16 01:04:30
【问题描述】:
json结构:
{
"id" : "1",
"Data" : [
{
"name" : "abc",
},
{
"name" : "option1",
"position" : [
{
"name" : "option1",
"status" : [
{
"code" : "0",
"value" : "OFF"
},
{
"code" : "1",
"value" : "ON"
}
]
}]
} ]
}
在这里,我想从上面复杂的 Json 结构中获取数据。如何做到这一点, 尝试了下面的代码,但给出了如下错误; 错误:uncaughtException:无法读取未定义的属性“状态”
function myfunc(req,res){
var collectionname = db.collection("col1");
collectionname.find({}).each(function(err, doc) {
if(doc != null)
{
var fdata = [];
for(var i =0;i<doc.Data.length;i++){
fdata.push(doc.Data[i].position.status);
}
console.log("fdata............",fdata);
}
});
}
请帮忙。
【问题讨论】:
-
Position 是一个数组,因此无法使用 position.status 访问它。如果位置数组中只有一个对象,则可以使用 position[0].status
-
doc.Data[i].position是一个数组 -
更新了我的问题。
-
@TB.M
doc.Data[i].position[0].status但你需要考虑一下。它是一个数组这一事实意味着它可以包含任意数量(包括 0)的带有或不带有status属性的对象。你能确定总是至少有一个对象吗?如果有多个,你能确定第一个总是你想要的吗? -
是的,它不会总是 0 元素,我已经更新了有问题的数组,下面我也得到了答案。感谢理解。
标签: arrays json node.js mongodb