1 回答
TA贡献1836条经验 获得超3个赞
msg.Vars["a"]对于 a和b 您可以msg.Vars["b"]分别访问这些值。对于 d、f 和 g,您需要首先访问它们的父项,就像访问 a 和 b 一样。然后,您需要对该类型的map[string]interface{}访问结果进行类型断言,然后通过类型断言的结果访问所需的字段。
fmt.Println(msg.Vars["a"]) // access a
fmt.Println(msg.Vars["b"]) // access b
c := msg.Vars["c"].(map[string]interface{}) // access c and type-assert as map[string]interface{}
fmt.Println(c["d"]) // then access d
https://go.dev/play/p/oZERUsL2EUY
或者使用与 json 匹配的结构,然后您可以使用选择器表达式访问字段
type Vars struct {
A int `json:"a"`
B string `json:"b"`
C struct {
D int `json:"d"`
} `json:"c"`
E struct {
F int `json:"f"`
G int `json:"g"`
} `json:"e"`
}
// ...
fmt.Println(msg.Vars.A)
fmt.Println(msg.Vars.B)
fmt.Println(msg.Vars.C.D)
fmt.Println(msg.Vars.E.F)
fmt.Println(msg.Vars.E.G)
https://go.dev/play/p/6ur78SNB_bL
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报