我正在使用一个API,我需要向它传递一段 struct . 我有一片映射,所以我需要将它转换为一片 struct .
package main
import "fmt"
func main() {
a := []map[string]interface{}{}
b := make(map[string]interface{})
c := make(map[string]interface{})
b["Prop1"] = "Foo"
b["Prop2"] = "Bar"
a = append(a, b)
c["Prop3"] = "Baz"
c["Prop4"] = "Foobar"
a = append(a, c)
fmt.Println(a)
}
[Map[Prop1:Foo Prop2:Bar]贴图[Prop3:Baz Prop4:Foobar]
因此,在本例中,我有映射a
的切片,其中包含b
和c
,它们是具有不同键的字符串的映射.
我希望将a
转换为 struct 片段,其中第一个元素是以Prop1
和Prop2
为属性的 struct ,第二个元素是以Prop3
和Prop4
为属性的 struct .
这个是可能的吗?
我看过https://github.com/mitchellh/mapstructure个,但我不能让它在我的用例中工作.我看过这个答案: https://stackoverflow.com/a/26746461/3390419
它解释了如何使用该库:
Mapstructure.Decode(mydata,&;Result)
然而,这似乎假设result
是实例的 struct 是预定义的,而在我的例子中, struct 是动态的.