0
如何将此JSON数据反序列化为结构中的数组/片中的适当结构?我想避免反序列化到map
。如何在JSON解组中的一个结构列表中的结构?
d := []byte(`{
"a": 1,
"b": [
{"c": 3, "d": 4},
{"c": 5, "d": 6}
]
}`)
如何将此JSON数据反序列化为结构中的数组/片中的适当结构?我想避免反序列化到map
。如何在JSON解组中的一个结构列表中的结构?
d := []byte(`{
"a": 1,
"b": [
{"c": 3, "d": 4},
{"c": 5, "d": 6}
]
}`)
该解决方案是相当直观的:
d := []byte(`{
"a": 1,
"b": [
{"c": 3, "d": 4},
{"c": 5, "d": 6}
]
}`)
var j struct {
A uint
B []struct {
C uint
D uint
}
}
if err := json.Unmarshal(d, &j); err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", j)
结果,打印到stdout
:{A:1 B:[{C:3 D:4} {C:5 D:6}]}
该作品只有预先知道每个元素的类型。如果没有,您需要应用更复杂的技巧将反序列化代码映射到正确的类。 – 2014-09-04 14:59:41
http://golang.org/pkg/encoding/json/#example_Unmarshal – JimB 2014-09-04 15:12:46