2017-05-12 179 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"` 
    }