我需要以灵活的方式指定用于解码 JSON 数据的类型,这意味着需要在运行时指定类型。
考虑这个片段:http ://play.golang.org/p/F-Jy4ufMPz
s := `{"b":[{"x":9},{"x":4}]}`
var a struct {
B []interface{}
}
err := json.Unmarshal([]byte(s), &a)
if err != nil {
panic(err)
}
fmt.Println(a)
这将产生{[map[x:9] map[x:4]]}
. 我想解码为特定(结构)类型的数组,而不是[]interface{}
在编译时指定它。
如果不预先创建数组,这是否可能?(退货数量未知)
我现在能想到的唯一方法是稍后再次对返回的地图进行编码,并将它们解码为指定的类型,这会产生不必要的处理开销。