如果我必须将以下 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"
}