我正在尝试在Node.js中为aws-lambda编译这部分代码,但是最后的变量latIT
仍然是undefined
。
try {
var urlfile ='https://url of json file';
var data = JSON.parse(urlfile, 'utf8');
for (var i = 0; i < data.length; i++) {
var latIT = data.results[i].geometry.location.lat;
}
return latIT;
} catch(error) {
//error
}
json的内容如下:
{
"results" : [
{ "geometry" : {
"location" : {
"lat" : 37.422593,
"lng" : -122.0853986
}
}
}
]
}
答案 0 :(得分:0)
遍历数组而不是遍历数据。 在您的json数据中。结果是一个数组,而不是数据
//Easy implemenation
for(var temp of jsonObj.results){
console.log(temp.geometry.location.lat);
}
var jsonObj = {
"results" : [
{ "geometry" : {
"location" : {
"lat" : 37.422593,
"lng" : -122.0853986
}
}
}
]
};
var latIT;
for(var temp of jsonObj.results){
latIT = temp.geometry.location.lat;
}
console.log(latIT);
答案 1 :(得分:0)
假设data
变量具有与您发布的JSON相同的形状,则当对象不具有此类属性时,您的错误是指data.length
。数组自动具有length
属性,但是这里的data
是对象,而不是数组。看来您打算改为检查data.results.length
。 (data.results
是一个数组,这似乎是您要迭代的内容。)