猿问

如何在 Go 中将 JSON 解组为 interface{}?

我是 Go 的新手,现在遇到了问题。我有一个名为 Message 的类型,它是一个这样的结构:


type Message struct {

    Cmd string `json:"cmd"`

    Data interface{} `json:"data"`

}

我还有一个叫做 CreateMessage 的类型,如下所示:


type CreateMessage struct {

    Conf map[string]int `json:"conf"`

    Info map[string]int `json:"info"`

}

我有一个像{"cmd":"create","data":{"conf":{"a":1},"info":{"b":2}}}.


当我用来json.Unmarshal将其解码为 Message 变量时,答案是{Cmd:create Data:map[conf:map[a:1] info:map[b:2]]}.


那么我可以将 JSON 解码为 Message 结构并根据 Cmd 更改其数据接口{}以键入 CreateMessage 吗?


我尝试将 Data 直接转换为 CreateMessage 类型,但编译器告诉我 Data 是一种 map[sting]interface{} 类型。


侃侃尔雅
浏览 161回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答