我得到它具有以下结构的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