在弹簧靴中将复杂的Jason响应转换为dto的最佳实践

时间:2019-03-24 11:40:04

标签: spring spring-boot spring-data-jpa

我必须在rest API调用中捕获Spring Boot中对数据传输对象的Jason响应。这是我的回应

"isvalid":true,
 "message": {
      "normal": {
        "show": true,
        "body": "testing",
        "bodyType": "text"
      },
      "important": {
        "show": true,
        "key": "test",
        "value": "test"
      }   
 },
 "department":"LAB",
 "type":"info",
 "priority":"normal",

我想编写dto类是捕获响应中嵌套对象的最佳实践。我目前正在使用静态内部类来传递消息,包括普通消息和重要消息。它按预期运行,我想知道是否有更好的方法来处理这种情况

这是我的dto类,(不包括getter,setter和构造函数)

public class myDto {

    private boolean isvalid;

    private String department;
    private String type;
    private String priority;

    private Message message;


    public static class Message{
        private Normal normal;
        private Important important;
    }


    public static class Important{
        private boolean show;
        private String key;
        private String value;
    }

    public static class Normal{
        private boolean show;
        private String body;
        private String bodyType;
    }
}

1 个答案:

答案 0 :(得分:0)

关于Jackson的(反序列化)过程,您的DTO非常好。

让我就Java编码约定给您一些小意见:

  • myDto是一个类名,因此应读为MyDto
  • isvalid应该为驼峰形式,因为它反映了两个词isValid
  • typebodyType的键入可能会更强一点。也许您可以将enumTYPE_ATYPE_B等值结合使用,以使您的域受限。但这只是一个建议。

最后但并非最不重要:要特别注意,您所有的内部类始终都是 static ,以便为Jackson实例化这样的类通过其零参数构造函数。如果它们是非静态的,则不可能。