为了账号安全,请及时绑定邮箱和手机立即绑定

golang 无法解析 json 以获取反射创建的对象

golang 无法解析 json 以获取反射创建的对象

Go
慕姐4208626 2021-11-01 10:59:55
我尝试在 go 中编写简单的消息协议,但遇到了问题。我有很多消息类型,我想要一个这样的字典来处理消息:var dict map[reflect.Type]int = map[reflect.Type]int{    reflect.TypeOf(DataMessage{}):          1000,    reflect.TypeOf(TextMessage{}):          1001,    //....}func GetMessageTypeId(value interface{}) int {    if id, ok := dict[reflect.TypeOf(value)]; ok {        return id    } else {        return -1    }}func GetValueByTypeId(typeId int) interface{} {    for typeDec, id := range dict {        if id == typeId {            return reflect.Zero(typeDec).Interface()        }    }    fmt.Println("Unknown message type", typeId)    return nil}它工作正常,但是当我使用 GetValueByTypeId 实例化消息并尝试将 json 解组到其中时 - 我收到的是 map[string]interface 而不是我的消息。我做了一个简单的例子来重现这个问题:http://play.golang.org/p/QEyDN9vztr
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信