我正在尝试遍历通过我的get请求返回的数据。我试图像遍历JSON格式一样迭代它,但是我对此并不清楚,并且不确定它是否返回了它以JSON格式识别的内容,或者它是否将它识别为字符串,这就是为什么我无法让它识别诸如info.data.items之类的东西。这是我使用节点获取请求的基本认证。尝试遍历一个节点获取其余的返回
这是从我的get请求返回的数据样本,以及我实际尝试遍历的数据。
{"data":{"items":[{"date":"2017-02-02","revenue":111,"impressions":000},{"date":"2017-02-03","revenue":123,"impressions":0000,},"message":"Top 2 rows returned."}
function rData(key, secret, account_id) {
var https = require('https');
var options = {
host: 'api.urlhere.com',
port: 443,
path: 'path',
// authentication headers
headers: {
'Authorization': 'Basic ' + new Buffer(key + ':' + secret).toString('base64')
}
};
var request = https.get(options, function(res) {
var body = "";
res.on('data', function(data) {
body += data;
});
res.on('end', function() {
//console.log(body);
callNextFunction(body);
})
res.on('error', function(e) {
console.log("Got error: " + e.message);
});
});
}
那么这里就是我试图通过与数据迭代的一个功能。它会之后通过这个功能我得到的错误,
TypeError: Cannot read property 'items' of undefined
function callNextFunction(rBody) {
var rData = rBody;
console.log("Data transfer sucessful: " + rData); // Works up to this point.
rData.data.items.forEach(function(info) {
var rev = info.revenue;
console.log("Revenue: " + rev);
})
}
和你有什么问题 – user7417866
JSON是文本数据。您需要解析它以将其转换为可以访问其属性的JS对象。 'var rData = JSON.parse(rBody);' – 2017-03-03 17:42:38
“以JSON格式识别,或者识别为字符串” - JSON _is_字符串 – qxz