如何在Golang中嵌套的JSON对象中解析嵌套数组?

时间:2017-05-12 11:11:10

标签: json go

我有一个JSON:

{
    "data": [
        {
            "id": 1,
            "values": [
                [
                    {
                        "id": "11",
                        "keys": [
                            {
                                "id": "111"
                            }
                        ]
                    }
                ]
            ]
        }
    ]
}

我想将“values”和“keys”解析为结构体,但我不知道我应该在“数据”中使用什么类型?:

type Value struct {
    Id   string `json:"id"`
    Keys []Key  `json:"keys"`
}
type Key struct {
    Id string `json:"id"`
}
type Result struct {
    Data []Data `json:"data"`
}
type Data struct {
    Id     int      `json:"id"`
    Values []???? `json:"values"`
}

如果有任何帮助,我将不胜感激。感谢。

2 个答案:

答案 0 :(得分:1)

如果仔细看看你的json。你有一个数组中的数组......

...
    "values": [
                    [...

如果是这样,那么值的类型是:

[][]Value

表示两个数组,否则删除数组嵌套,它变为:

[]Value

可运行的示例: https://play.golang.org/p/UUqQR1KSwB

答案 1 :(得分:-1)

    type Basic struct {
        ID string `json:"id"`
    }

    type Inner struct {
        ID string `json:"id"`
        Keys []Basic `json:"keys"`
    }

    type Middle struct {
        ID int `json:"id"`
        Values []Inner `json:"values"`
    }

    type Final struct {
        Data []Middle `json:"data"`
    }