所以我试图从谷歌地图中对地址进行地理编码,但是当我尝试访问结果时,它说包含结果的数组是未定义的。我已经完成了相反的操作,从坐标中查找地址,授予了PHP,我不知道为什么这不起作用。我想通过JSON解析得到我想要的数据(Lat和long),但由于我无法做到这一点,我做了一个解决方法,只做了JSON.stringify并找到了Lat&通过str.locate("lat")
。
但是,当我从谷歌地图解析json响应时,我得到了这个
{ results:
[ { address_components: [Object],
formatted_address: '2985 NW Moda Way, Hillsboro, OR 97124, USA',
geometry: [Object],
place_id: 'ChIJt-G-MmcPlVQROzDAlEVj1nA',
types: [Object] } ],
status: 'OK'
}
几何体内的对象是我想要的,为了得到这个,我使用来自node.js的请求库。我控制台记录JSON.parse(response.body);
以获取结果数组,但试图通过
JSON.stringify(response.body.results[2]);
导致
TypeError: Cannot read property '2' of undefined
修改:代码我正在使用google maps API请求
request('https://maps.googleapis.com/maps/api/geocode/json?address=' + address + '+' + parsedStreet + '&key=' + key, function(err, response) {
if (err)
console.log("holy shit error");
console.log(JSON.parse(response.body.results));
返回
undefined
^ SyntaxError: Unexpected token u in JSON at position 0
address和parsedStreet是我从文件中读取以转换为坐标
的地址值答案 0 :(得分:1)
在您将JSON实际解析为对象之前,您似乎正在尝试访问result
索引,因此您尝试从字符串中获取result
索引。您需要JSON.parse
仅响应主体,然后进入结果,如下所示:
console.log(JSON.parse(response.body).results);