Я использую приведенный ниже код для создания файла 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
Кто-нибудь знает, как решить эту проблему?