如何在程序之间传送滴料

时间:2019-01-23 02:07:50

标签: go gob

我使用下面的代码创建一个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 

有人知道如何解决此问题吗?

0 个答案:

没有答案