我正在尝试在 Go 中创建一个通用方法,它将使用来自 — 的数据填充 struct
map[string]interface{}
。例如,方法签名和用法可能如下所示:
func FillStruct(data map[string]interface{}, result interface{}) {
...
}
type MyStruct struct {
Name string
Age int64
}
myData := make(map[string]interface{})
myData["Name"] = "Tony"
myData["Age"] = 23
result := &MyStruct{}
FillStruct(myData, result)
// result now has Name set to "Tony" and Age set to 23
我知道这可以使用 JSON 作为中介来完成;还有另一种更有效的方法吗?
原文由 tgrosinger 发布,翻译遵循 CC BY-SA 4.0 许可协议
最简单的方法是使用 https://github.com/mitchellh/mapstructure
如果你想自己做,你可以这样做:
http://play.golang.org/p/tN8mxT_V9h