访问JSON中的嵌套成员

时间:2016-08-14 22:07:07

标签: javascript arrays json node.js

我试图访问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 sum 值:

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,然而,当我运行这些时,它会给我[未定义]错误。

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

1 个答案:

答案 0 :(得分:0)

如果你看到你的pt是一个对象[{}]的数组,那么你需要选择你想要访问的元素

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

应该能得到正确的结果