我有以下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
我可以通過讓每個子對象@運行時的名稱迭代此類複雜的對象?
如果complexField嵌套POJO數組是有限的 - 你可以註冊一個自定義的反序列化器,否則 - 你可以將complexField反序列化成一個Map,對吧? –
這裏complexfield的主要問題不是數組其JSON對象。此內部名稱對象的格式在少數情況下也不同。 – pcj
「嵌套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 –