如何在节点js中解析JSON数组

时间:2017-10-03 10:56:08

标签: javascript json node.js

我正在尝试下面的代码,其中body是来自HTTP GET的响应。当我试图运行它时,我遇到了错误。

  

无法读取未定义

的属性“po_number
{
    "d": {
        "results": [
            {
                "po_number": "PO1001",
                "product_id": "PD1001",
                "message": "Exists",
                "timestamp": "2016-05-01" 
            }
        ]
    }
}

如何访问po_number

var profile = JSON.parse(body);
console.log("profile: "+ profile.results.po_number);

当我访问上面的代码

时,我收到了undefined

3 个答案:

答案 0 :(得分:3)

你错过了一步。您错过了对象d并且results是一个数组。因此,首先访问0索引项。

您需要通过profile.d.results[0].po_number



const jsonObj = `{ "d": {
     "results": [
      {
          "po_number": "PO1001",
          "product_id": "PD1001",
          "message": "Exists",
          "timestamp": "2016-05-01" 
      }]
}}`;

var profile = JSON.parse(jsonObj);
console.log(profile.d.results[0].po_number);




答案 1 :(得分:0)

结果是一个数组。

要访问po_number,您需要执行以下操作:

console.log("profile: "+ profile.results[0].po_number)

确保动态迭代数组以访问该值。

示例(在下划线/ lodash中):

_.each(profile.results, (result) => { 
  console.log("profile: " + result.po_number);
});

答案 2 :(得分:-1)

var profile = JSON.parse(JSON.stringify(data[0]))
console.log("profile: "+ profile.po_number)