我有来自服务器的 json 响应作为字符串。我将它分解为一个typejson.Unmarshal
的变量。body
map[string]interface{}
var body map[string]interface{}
if err := json.Unmarshal(bodyByte, &body); err != nil {
log.Fatal(err)
}
现在我需要从中获取第body["items"]
一个元素,但是有一个问题:
Invalid operation: 'body["items"][0]' (type 'interface{}' does not support indexing)
我在 go 中写的不多(主要是 python),所以我有一个问题:How to tell go that body
there are elements with different types ( map[string]string
, []string
, string
etc)
如果您已经知道响应的结构,那么您可以制作 Go 静态类型。然后
Unmarshal
它会自动将类型从 转换json
为go
。解码示例:
有关
encoding/json
标签的解释方式,json:"..."
请参阅文档https://pkg.go.dev/encoding/json#Marshal