如果我必须将以下 JSON 转换为 Java 对象,我的 DTO class 应该是什么样子?
How should my DTO class look like if I have to convert the following JSON into Java Object?
{
"A":{
"B":"a"
},
"C":[
"b",
"c"
],
"D":"d"
}
以上只是一个示例输入。也可以有类似的嵌套结构。我可以考虑在我的 DTO class 中使用 map 作为成员变量。如果我们不知道 JSON 的确切结构和长度,是否有可能提出 DTO class?
您需要以下 3 类 来映射 from/to 那 JSON.
class Root {
@SerializedName("A")
ClassA fieldA;
@SerializedName("C")
List<String> fieldC;
@SerializedName("D")
String fieldD;
}
class ClassA {
@SerializedName("B")
String fieldB;
}
测试
Root root = new Root();
root.fieldA = new ClassA();
root.fieldA.fieldB = "a";
root.fieldC = Arrays.asList("b", "c");
root.fieldD = "d";
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(root));
输出
{
"A": {
"B": "a"
},
"C": [
"b",
"c"
],
"D": "d"
}
{
"A":{
"B":"a"
},
"C":[
"b",
"c"
],
"D":"d"
}
以上只是一个示例输入。也可以有类似的嵌套结构。我可以考虑在我的 DTO class 中使用 map 作为成员变量。如果我们不知道 JSON 的确切结构和长度,是否有可能提出 DTO class?
您需要以下 3 类 来映射 from/to 那 JSON.
class Root {
@SerializedName("A")
ClassA fieldA;
@SerializedName("C")
List<String> fieldC;
@SerializedName("D")
String fieldD;
}
class ClassA {
@SerializedName("B")
String fieldB;
}
测试
Root root = new Root();
root.fieldA = new ClassA();
root.fieldA.fieldB = "a";
root.fieldC = Arrays.asList("b", "c");
root.fieldD = "d";
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(root));
输出
{
"A": {
"B": "a"
},
"C": [
"b",
"c"
],
"D": "d"
}