doucan957495
2017-05-12 11:11
浏览 522

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

I have a JSON:

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

I want to parse "values" and "keys" into structs, but I don't known what type should i use in "Data"?:

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"`
}

I would be grateful for any help. Thanks.

图片转代码服务由CSDN问答提供 功能建议

我有一个JSON:

  {
“数据 “:[
 {
” id“:1,
” values“:[
 {
 {
” id“:” 11“,
” keys“:[
 {
”  id“:” 111“ 
} 
] 
} 
] 
] 
} 
] 
} 
   
 
 

我想 将“值”和“键”解析为结构,但是我不知道我应该在“数据”中使用哪种类型?

  type Value struct {
 ID字符串 `json:“ id”`
键[]键`json:“ keys”`
} 
type键结构{
 ID字符串`json:“ id”`
} 
type结果结构{
数据 [] Data`json:“ data”`
} 
type数据结构{
 ID int`json:“ id”`
值[] ????  json:“ values”`
} 
   
 
 

我将不胜感激。 谢谢。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongshi1215 2017-05-12 11:26
    已采纳

    If you look carefully at your json. you have an array in an array...

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

    If this is intended then the type of values is:

    [][]Value
    

    to represent the two arrays, else remove the array nesting and it becomes:

    []Value
    

    Runnable Example: https://play.golang.org/p/UUqQR1KSwB

    打赏 评论
  • douzinei6926 2017-05-12 11:27
        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"`
        }
    
    打赏 评论

相关推荐 更多相似问题