从包含数组的JSON对象中提取数据

时间:2017-09-16 00:19:59

标签: json node.js api npm https

我正在尝试从服务器中提取响应正文中的数据。我已经浏览了一段时间的网络,发现了一些"应该"工作,但不要。该请求是一个返回JSON对象的https请求。

//Open the request:
request({

  //Set the request Method:
  method: 'POST',
  //Set the headers:
  headers: {
    'Content-Type': 'application/json',
    'Authorization': "Bearer "+ token,
    'X-Originating-Ip': ipAddress
  },
  //Set the URL:
  url: 'URL',
  //Set the request body:
  body: { 'Body here'},
  }, function(error, response, body){

    //Alert the response body:
    for(var i=0; body.data.listings.length; i++){
      console.log(data.listings[i].listingType);
    }
    console.log(response.statusCode);
  });

出于安全原因,我无法显示实际的响应正文,但它是一个包含多个数组的JSON对象。

2 个答案:

答案 0 :(得分:0)

可能你应该console.log(body.data.listing[i].listingType)

修复错误的另一个好方法是:

body.data.listings.forEach(function(element,index){
   //do something
}

答案 1 :(得分:0)

问题在于for循环

for(var i=0; body.data.listings.length; i++){
  console.log(data.listings[i].listingType);
}

首先,循环的终止条件是body.data.listings.length,它将始终返回listings的长度,并且对于非空数组始终是真的。您需要将循环声明更改为

for(var i=0; i<body.data.listings.length; i++){

它应该正确遍历数组中的所有项目。 其次,正如James所说,你应该在循环中使用body.data.listings[i].listingType而不是data.listings[i].listingType