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

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

使用json.RawMessage字段为消息的固定部分定义结构类型,以捕获消息的变体部分。为每个变量类型定义结构类型,并根据命令对其进行解码。

type Message struct {  Cmd string `json:"cmd"`  Data      json.RawMessage}type CreateMessage struct {    Conf map[string]int `json:"conf"`    Info map[string]int `json:"info"`}func main() {    var m Message    if err := json.Unmarshal(data, &m); err != nil {        log.Fatal(err)    }    switch m.Cmd {    case "create":        var cm CreateMessage        if err := json.Unmarshal([]byte(m.Data), &cm); err != nil { log.Fatal(err)        }        fmt.Println(m.Cmd, cm.Conf, cm.Info)    default:        log.Fatal("bad command")    }}

游乐场的例子



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5163357.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-18
下一篇2022-11-18

发表评论

登录后才能评论

评论列表(0条)

    保存