为了账号安全,请及时绑定邮箱和手机立即绑定

解析来自 Google 地图的 JSON 响应

解析来自 Google 地图的 JSON 响应

Go
繁花如伊 2023-08-14 17:47:11
我需要创建一个代理服务器来连接到谷歌地图网络服务,我发现一个教程可以完成我大约 95% 的需要。该教程使用golang,我对golang几乎完全陌生,如果我完全按照它操作,它就可以正常工作。但是当我尝试更改教程中的某些内容时,我显然把一些事情搞砸了,哈哈。我现在需要的问题是,本教程仅解析 google-maps 响应中的 2 个变量,即纬度和经度。对于我的应用程序的其余部分,我还需要地点 ID。我收到了谷歌地图的回复,这不是问题。如果我将其解析为type placeResults struct {    Results []struct {        Geometry struct {            Location struct {                Lat float64 `json:"lat"`                Lng float64 `json:"lng"`            } `json:"location"`        } `json:"geometry"`    } `json:"results"`}它工作正常,给了我经度和纬度,不用担心。但如果我尝试,type placeResults struct {    Results []struct {        Geometry struct {            Location struct {                Lat float64 `json:"lat"`                Lng float64 `json:"lng"`            } `json:"location"`        } `json:"geometry"`        id struct {            Id string `json:"id"`        }    } `json:"results"`}它告诉我:json: 无法将字符串解组到 Go 结构字段 .Id 类型为 struct { Id string "json:\"id\"" }现在 id 变量不是几何的一部分,而是响应的通用部分,所以我认为这将是正确的语法。显然我错了。但是包含这个的正确语法是什么?
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

Google Place API 响应看起来像,


      "geometry" : {

         "location" : {

            "lat" : -33.866651,

            "lng" : 151.195827

         },

         "viewport" : {

            "northeast" : {

               "lat" : -33.8653881697085,

               "lng" : 151.1969739802915

            },

            "southwest" : {

               "lat" : -33.86808613029149,

               "lng" : 151.1942760197085

            }

         }

      },

      "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",

      "id" : "4f89212bf76dde31f092cfc14d7506555d85b5c7",

所以你需要将 id 字段声明为字符串,而不是结构。您需要更改 placeResult 结构。


type modifiedPlaceResult struct {

    Geometry struct {

        Location struct {

            Lat float64 `json:"lat"`

            Lng float64 `json:"lng"`

        } `json:"location"`

    } `json:"geometry"`


    Id string `json:"id"`

}

尝试使用modifiedPlaceResult结构来解组数据,一切都会好的。我附上了 Go Playground 的示例:https ://play.golang.org/p/Q4rM-jluoFe


查看完整回答
反对 回复 2023-08-14
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信