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

我正在利用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 之类的东西。


任何帮助表示赞赏。


三国纷争
浏览 72回答 1
1回答

达令说

由于地图的元素是 an ,interface{}因此您必须将其转换为相应的类型才能将其作为地图访问,如下所示:if value, ok := healthmonitormap["https_monitor"].(map[string]interface{}); ok {    fmt.Println(value["http_request"]) //Output: GET /welcome HTTP/1.1 }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go