在GO中,如何从下面的json数据中获取年龄数组
{
"people": {
"female": [
{
"age": 31,
"id": 1
},
{
"age": 32,
"id": 2
}
],
"male": [
{
"age": 33,
"id": 3
},
{
"age": 34,
"id": 5
}
]
}
}
最终结果应该是年龄的集合,例如
[31,32,33,34]
最佳答案
创建一个与布局匹配的结构,并从中创建年龄片:
func main() {
var s struct {
People struct {
Female []struct {
Age int
}
Male []struct {
Age int
}
}
}
err := json.Unmarshal([]byte(j), &s)
var ages []int
for _, p := range s.People.Female {
ages = append(ages, p.Age)
}
for _, p := range s.People.Male {
ages = append(ages, p.Age)
}
fmt.Println(err, ages)
}