在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)

}

10-06 06:17