2017-05-12 180 views
0

我有一个JSON:如何解析Golang中嵌套的JSON对象中的嵌套数组?

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

我想分析“价值”和“钥匙”为结构,但我不知道我应该在“数据”使用什么类型的?:

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

我会很感激任何帮助。谢谢。

+0

从内部开始,分别创建结构并从一个通用结构调用所有子结构。 (这是传统的方法。) –

回答

1

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

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

如果这样做的目的则值的类型是:

[][]Value 

来表示两个数组,否则删除阵列筑巢和它变为:

[]Value 

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

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