В настоящее время этот метод я использую для преобразования карты [строка] интерфейс {}, чтобы сообщение STRUCTКарта <-> структура типа литья
byteBlob, err := json.Marshal(messageMap)
if err != nil {
return nil, err
}
message := &Message{}
err = json.Unmarshal(byteBlob, message)
if err != nil {
return nil, err
}
Я нашел пакет JSon взломать мой путь через это, но то, что является правильным способ сделать это преобразование? очевидно, без использования пакета json
Не забудьте проверить, что поле 'field.PkgPath' является пустой строкой (экспортированные поля). Попытка «Установить» в неэкспонированное поле будет паниковать. – thwd
Хорошая точка. Я добавил проверку CanSet() на фрагмент кода примера. –
Есть также существующие пакеты, делающие эту магию. Я еще не использовал его сам, но, например: https://github.com/mitchellh/mapstructure –