Проверка на полное соответствие полей JSON в java объекте

Всем привет! При десериализации JSON в POJO в моем классе есть поле, которое не получаю в json ответе, но тест при этом успешно проходит, записывает значение в поле POJO null, как я могу проверить, что все поля JSON совпадают с полями моего POJO?

Нашла решение - может кому пригодится, необходимо пометить поле как обязательное, для этого создаем конструктор с аннотацией @JsonCreator, где используется аннотация @JsonProperty(value = “field_name”, required = true), и в случае отсутствия поля будет выдаваться исключение

public class Cat {
    private String name;

    @JsonCreator
    public Cat(
            @JsonProperty(value = "name", required = true) String name) {
        this.name = name;
    }

}

А если просто повесить на поле Nonnull не тоже самое будет? Но может неправильно понял вопрос.

тут мне надо было проверить ни на значение поля, а на присутствие этого поля в json, поля могут приходить со значением null

А в этом есть какой-то смысл? Я прото когда преобразую JSON в объект, то разницы нет, что есть поле с null, что нет его. В java jackson есть даже аннотация для DTO - @JsonInclude(JsonInclude.Include.NON_NULL) которая помечает, что из итогового JSON нужно убрать все пустые поля и не гонять их по сети.

Вижу только одно место где было бы это уместно проверять - в разработке сериализаторов / десериализаторов, типа того же jackson, gson и т.п.

я проверяю на то что все обязательные поля присутствуют, у нас недавно на проде выстрелило, что каким-то образом обязательные поля отсутствовали в json в одном из методов, поэтому решили запилить проверки для обязательных полей

Так если поля “обязательные”, то почему в них попадают null значения? По идее такого быть не должно. Тут где-то ошибка или поле не столь уж “обязательное”, либо кто-то вместо пустой коллекции/объекта отдаёт null.