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

golang 从地图内部的地图访问值

golang 从地图内部的地图访问值

Go
三国纷争 2022-12-05 17:13:04
我正在利用Avi Go SDK来获取 avi healthmonitor 配置,如下所示var healthmonitormap map[string]interface{}err = aviClient.AviSession.GetObjectByName("healthmonitor", "healthmonitorname", &healthmonitormap)if err != nil {    t.Error(err)}它将健康监视器的元数据存储在 healthmonitormap 中,如下图所示map[_last_modified:1644392621383838 failed_checks:3 https_monitor:map[    http_request:GET /welcome HTTP/1.1     http_response_code:[HTTP_2XX HTTP_3XX]] monitor_port:443 name:helloworldspringbootssl-dit1-monitor receive_timeout:3 send_interval:10 successful_checks:3 tenant_ref:https://xxxxxxxxxxxxxxxx/api/tenant/tenant-xxxxxxxxxxxx type:HEALTH_MONITOR_HTTPS url:https://xxxxxxxxxxx/api/healthmonitor/healthmonitor-xxxxxxxxxxxxxxx uuid:healthmonitor-xxxxxxxxxxxxxxxx]从地图上,我能够成功访问名称、monitor_port 等,它们位于地图的根目录中,如下所示assert.Equal(t, healthmonitormap["name"], "helloworldspringbootssl-dit1-monitor")assert.Equal(t, float64(443), healthmonitormap["monitor_port"])但是我无法理解如何访问地图内的地图 http_request 和 http_response_code 之类的东西。任何帮助表示赞赏。
查看完整描述

1 回答

?
达令说

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

由于地图的元素是 an ,interface{}因此您必须将其转换为相应的类型才能将其作为地图访问,如下所示:


if value, ok := healthmonitormap["https_monitor"].(map[string]interface{}); ok {

    fmt.Println(value["http_request"]) //Output: GET /welcome HTTP/1.1 

}


查看完整回答
反对 回复 2022-12-05
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

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