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