javascript - 谷歌地图地理编码结果未定义

标签 javascript json node.js google-maps-api-3 request

所以我试图对谷歌地图中的地址进行地理编码,但是当我尝试访问结果时,它说包含结果的数组未定义。我已经做了与此完全相反的事情,从坐标中查找地址,假设这是在 PHP 中,我不确定为什么这不起作用。我只想解析 JSON 以获取我想要的数据(纬度和经度),但由于我无法做到这一点,所以我做了一个解决方案,只是做了 JSON.stringify 并找到了纬度和经度通过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]); 结果 类型错误:无法读取未定义的属性“2”

编辑:我正在使用谷歌地图 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));

返回

未定义 ^ SyntaxError:JSON 中位置 0 处出现意外标记 u

address 和 parsedStreet 是我从文件中读取以转换为坐标的地址值

最佳答案

看起来您在实际将 JSON 解析为对象之前尝试访问 result 索引,因此您尝试从以下位置获取 result 索引一个字符串。您只需要 JSON.parse 响应正文,然后获取结果,如下所示:

console.log(JSON.parse(response.body).results);

关于javascript - 谷歌地图地理编码结果未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42057029/

相关文章:

html - MongoDB 数据库的表格表示,包括 Express 和 Angular

用于代码语法高亮显示的 Javascript 库

javascript - 1 个帖子中的多个 Facebook Live react 民意调查

javascript - 对象不支持属性或方法 'accordion'

javascript - 在 EmberJS 中重新绑定(bind)时,数组值不会得到反射(reflect)

javascript - Chrome 扩展程序 .json 文件上传时出错

node.js - 如何在 Vagrant VM 上安装 bcrypt?

javascript - 测试正则表达式的相等性

jquery - JQUERY 的 cfc 文件中的 JSON 结果出现错误

php - 来自 Google Finance API 调用的 JSON 中的前导斜线