I use the below code to create a gob file which go successfully executes
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)
Below is the decoder compiled from a completely different codebase and debug binary, which fails.
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)
The decoding code fails with the following error:
gob: decoding into local type *[]map[string]interface {}, received remote type
Anyone know how to resolve this issue?