相关疑难解决方法(0)

如何在Go中将JSON解组到接口{}?

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

type Message struct {
    Cmd string `json:"cmd"`
    Data interface{} `json:"data"`
}
Run Code Online (Sandbox Code Playgroud)

我也有一个名为CreateMessage的类型,如下所示:

type CreateMessage struct {
    Conf map[string]int `json:"conf"`
    Info map[string]int `json:"info"`
}
Run Code Online (Sandbox Code Playgroud)

我有一个像JSON字符串{"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更改其Data的接口{}以键入CreateMessage吗?

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

json go

25
推荐指数
1
解决办法
2万
查看次数

标签 统计

go ×1

json ×1