在我正在使用的API中,我將某個部分作爲普通JSON數組而不是普通鍵=>值對接收。它的愚蠢,但這是我必須處理的。按位置對象映射JSONArray
實施例:
{"build":29625,"list": [
[312218505,1000,624437010,21997878697,35228,0,0,0],
[186873474,0,0,0,0,-1,0,0]
...
]}
的問題越來越谷歌GSON到每個陣列位置到字段映射在正常對象。由於毫不奇怪,沒有任何原生支持,所以我不得不推出我自己的解決方案:每個需要轉換的「請求」實現一個CustomConvert接口,其中有convertToObjects()
和convertToJson()
方法。每個「條目」都有一組帶有@ArrayPosition(number)
註釋的字段。轉換方法在兩個列表之間轉換。
由於這是醜陋的,有沒有更好的方法來使用Google GSON甚至是另一個用於Java的JSON庫?
呃,寫一個gson串行器/解串器?你能舉一個你正在收到的JSON的例子嗎? – 2013-05-10 20:35:14
@Brian See編輯。和TMK的串行器/解串器它會搞亂其他東西,返回一個JSONArray – TheLQ 2013-05-10 21:04:14
你不寫一個List /數組 - 你寫一個對象包含一個'build'字段和'List'字段。將參數列表傳遞給MyObject的構造函數,以實例化每個參數並將其添加到List中。 (我假設你的JSON數組中的每個內部數組表示相同類型的對象) –
2013-05-10 21:08:22