【发布时间】:2015-10-02 18:50:39
【问题描述】:
考虑一个复杂的 JSON 字符串
{
"1": {
"name": "1",
"CLUSTERS": {
"3": {
"name": "3",
"SUBCLUSTERS": {
"6": {
"INSTANCES": [
{
"SERVER": "4",
"ID": "133",
"DESCR": "Hi"
},
{
"SERVER": "5",
"ID": "6",
"DESCR": "Lo"
},
"name": "6"
}
}
}
}
}
}
有数百个 CLUSTERS 和 SUBCLUSTERS。您将如何使用 Java 反序列化如此复杂的结构。有没有一种方法可以反序列化而无需创建像 public class Cluster3 和 public class Subcluster6 这样的类?
到目前为止,我有这些课程:
Cluster.java
public class Cluster {
@SerializedName("SUBCLUSTERS")
private Subcluster subCluster;
@SerializedName("name")
private String name;
}
Subcluster.java
public class Subcluster {
@SerializedName("INSTANCES")
private InstanceArray instanceArray;
}
Site.java
public class Site {
@SerializedName("CLUSTERS")
private Cluster cluster;
@SerializedName("name")
private String name;
}
Instance.java
public class Instance {
@SerializedName("SERVER")
private String serverName;
@SerializedName("ID")
private String instanceId;
@SerializedName("DESC")
private String description;
}
InstanceArray.java
public class InstanceArray {
@SerializedName("INSTANCES")
private List<Instance> instance;
}
但我认为我没有考虑到实际的CLUSTERS 和SUBCLUSTERS 对象本身,例如3 和6。如果不为每个单独的 CLUSTER 和 SUBCLUSTER 对象创建一个类,我怎么能做到这一点,因为这不合理?
【问题讨论】:
标签: java json serialization gson