2016-01-04 37 views
0

我有以下JSON fromat消耗從服務數據對象:GSON對象由對象解析爲具有不同名稱的每次

{ 
    "field1": { 
    "key": "value" 
    }, 
    "complexfield": { 
    "name1": { 
     "key": "value" 
    },"name2": { 
     "key": "value" 
    },"name3": { 
     "key": "value" 
    },"name4": { 
     "key": "value" 
    },"name5": { 
     "key": "value" 
    },"name6": { 
     "key": "value" 
    },"name7": { 
     "key": "value" 
    } 
    }, 
    "field2": { 
    "key": "value" 
    } 
} 

這裏field1 & field2都具有一個用於我可以創建一個POJO恆定格式,但對於complexfield內部的name對象每次都會有所不同(即格式將相同,但它的name將每次都會更改)。另外complexfield不是一個數組來迭代它,它是一個對象。有一件事很清楚,我無法爲此創建pojo,我必須逐個Object,但是我想如何在每個響應中獲取具有不同名稱的複雜域內部對象?使用getAsJsonObject("what to pass here as name ?")

OR

我可以通過讓每個子對象@運行時的名稱迭代此類複雜的對象?

+0

如果complexField嵌套POJO數組是有限的 - 你可以註冊一個自定義的反序列化器,否則 - 你可以將complexField反序列化成一個Map ,對吧? –

+0

這裏complexfield的主要問題不是數組其JSON對象。此內部名稱對象的格式在少數情況下也不同。 – pcj

+0

「嵌套POJO的有限數組」我指的是可能嵌套對象的列表。您可以爲您的整個對象註冊一個自定義的反序列化器,並將complexField反序列化爲一個Map http://stackoverflow.com/questions/6096940/how-do-i-write-a-custom-json-deserializer-for-gson另一個示例這裏:http://stackoverflow.com/questions/16590377/custom-json-deserializer-using-gson –

回答