我使用下面的代码创建一个gob文件,该文件可以成功执行
var METADATA = []interface{}{
map[string]interface{}{...},
map[string]interface{}{...},
...
}
gob.Register(map[string]interface{}{})
gob.Register([]interface{}{})
file, err := os.Create("./thrift_metadata.gob")
if err != nil {
return err
}
encoder := gob.NewEncoder(file)
err = decoder.Decode(object)
下面是从完全不同的代码库和调试二进制文件编译的解码器,但失败了。
gobPath := path.Join(currentWorkingDirectory, "./thrift_metadata.gob")
file, err := os.Open(gobPath)
if err != nil {
panic(err)
}
gob.Register(map[string]interface{}{})
gob.Register([]interface{}{})
decoder := gob.NewDecoder(file)
err = decoder.Decode(object)
解码代码失败,并出现以下错误:
gob: decoding into local type *[]map[string]interface {}, received remote type
有人知道如何解决此问题吗?