在JSON中访问嵌套成员
问题描述:
我试图访问json中的成员,但是我遇到了一些麻烦。这里是JSON对象之一的一个例子,保存在var中的obj:在JSON中访问嵌套成员
var fs = require('fs');
var obj = [
{
"_id": "52d7f816f96d7f6f31fbb680",
"regNum": "0361300035313000002",
"sd": "2013-01-01T00:00:00",
"pd": "2013-01-25T09:30:29Z",
"prd": "2012-12-18",
"p": 1395000000,
"pt": [
{
"name": name here",
"price": 1395000000,
"OKDP": {
"code": "5520109",
"name": "name here"
},
"sid": "25484812",
"sum": "1395000000",
"OKEI": {
"code": "796",
"name": "name two"
},
"quantity": "1"
}
],
"b": 0,
"c": 0,
"s": 0
}
];
我试图访问SID和总和值,通过执行以下操作:
var sid = [];
var sum = [];
obj.forEach(block => {
var sidOut = block.pt.sid;
var sumOut = block.pt.sum;
sid.push(sidOut);
sum.push(sumOut);
});
console.log(sid);
console.log(sum);
我试过解决方案here,但是,当我运行这些时,它给了我[未定义]的错误。
为什么我无法访问这两个值?
答
,如果你看到你的PT是一个对象的数组[{}],所以你需要选择你要访问的元素,以便
var sidOut = block.pt[0].sid;
var sumOut = block.pt[0].sum;
应该让你在正确的结果
'块。 pt [0] .sid;';介意你的1元素阵列 – dandavis
@dandavis哎呀!就是这样,谢谢。随意发布答案 – user3335607