我需要以灵活的方式指定用于解码 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{},而不在编译时指定它。
在不预先创建数组的情况下以某种方式可能吗?(退货数量未知)
我现在能想到的唯一方法是稍后再次对返回的映射进行编码,并将它们解码为指定的类型,这会产生不必要的处理开销。
子衿沉夜
相关分类