如何在Go中的结构中对列表中的结构进行JSON解组?
如何将此JSON数据反序列化为结构中的数组/切片中的适当结构?我希望避免反序列化到如何在Go中的结构中对列表中的结构进行JSON解组?,json,go,Json,Go,如何将此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}
映射
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)
打印到标准输出的结果:
{A:1b:[{C:3d:4}{C:5d: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)
打印到标准输出的结果:
{A:1b:[{C:3d:4}{C:5d: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)
打印到标准输出的结果:
{A:1b:[{C:3d:4}{C:5d: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:1b:[{C:3d:4}{C:5d:6}]}
的结果只有在预先知道每个元素的类型时才有效。否则,您将需要应用更复杂的技巧来将反序列化代码映射到正确的类。这只有在预先知道每个元素的类型时才有效。否则,您将需要应用更复杂的技巧来将反序列化代码映射到正确的类。这只有在预先知道每个元素的类型时才有效。否则,您将需要应用更复杂的技巧来将反序列化代码映射到正确的类。这只有在预先知道每个元素的类型时才有效。如果没有,则需要应用更复杂的技巧将反序列化代码映射到正确的类。