2016-08-14 123 views
0

我试图访问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,但是,当我运行这些时,它给了我[未定义]的错误。

为什么我无法访问这两个值?

+2

'块。 pt [0] .sid;';介意你的1元素阵列 – dandavis

+0

@dandavis哎呀!就是这样,谢谢。随意发布答案 – user3335607

回答

0

,如果你看到你的PT是一个对象的数组[{}],所以你需要选择你要访问的元素,以便

var sidOut = block.pt[0].sid; 
var sumOut = block.pt[0].sum; 

应该让你在正确的结果