0

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

有谁知道如何解决这个问题?

4

0 回答 0