Лучшая практика для преобразования сложного ответа Джейсона на dto в весенней загрузке - PullRequest
1 голос
/ 24 марта 2019

Мне нужно захватить ответ Джейсона на объект передачи данных при весенней загрузке в вызове API отдыха. вот мой ответ

"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 (геттеры, сеттеры и конструкторы не включены)

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 голосов
/ 24 марта 2019

Ваш DTO в порядке в отношении (де) сериализации Jackson.

Позвольте мне дать вам несколько небольших замечаний по соглашениям Java-кодирования:

  • myDto является именем класса и поэтому должно читаться как MyDto
  • isvalid должно быть в верблюжьем футляре, поскольку оно отражает два слова isValid
  • type и bodyType могут быть напечатаны немного сильнее. Возможно, вы могли бы использовать enum со значениями, такими как TYPE_A, TYPE_B и так далее, чтобы ограничить ваш домен. Но это всего лишь предложение.

Последнее, но не менее важное: Обратите особое внимание , что все ваши внутренние классы всегда static, чтобы дать Jackson возможность создавать экземпляры таких классов через их ноль- конструктор аргументов. Это было бы невозможно, если бы они были нестатичными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...