我得到它具有以下結構的JSON:GSON反序列化與不斷變化的字段類型
{"field1": "string",
"field2": false,
"a": {
"b": {
"listString": []
},
"c": {
"listString": [],
"s": "string"
},
"parent": {
"childA": {
"listString": ["string", "string"]
},
"s": "string"
},
"parent2": {
"listString": ["string", "string"],
"s": "string"
}
},
"field3": ["s", "s"]
}
我現在面臨的問題與parent
(和parent2
),因爲這些字段的格式可以改變。雖然複雜對象b
和c
的格式保持不變。例如,我可以得到parent
(同樣適用於parent2
)以這樣的方式
{"parent": {
"childA":{
"listString": ["ssssa", "a"]
},
"s": "string"
}}
或
{"parent": {
"listString": ["ssssa", "a"],
"s": "string"
}}
此外,childA
場(如果存在的話)可以有不同的名稱,也可以是childB
或childC
我創建了複雜對象的Java類:
public class MyPojo{
private String[] field1;
private String field2;
private A a;
private String field3;...}
public class A{
private B b;
private C c;
private Parent parent;
private Parent2 parent2;..}
public class Parent{
private String s;
private ChildA childA;...}...
如果parent
和parent2
對象具有不同的合成器,我該如何使用Gson反序列化此類東西?
是childA,childB和childC是唯一的選擇?或者它可以是帶有孩子*前綴的任何東西?例如childXX? – gybandi
更準確地說,childA,childB和childC(如果存在)應該是AND,OR或NOT。這些是唯一可能發生的項目名稱。 – choka