@JsonCreator 'не удалось найти свойство creator с именем' даже при ignoreUnknown = true
у меня есть следующий класс:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Topic {
private List<Comment> comments = new ArrayList<>();
private List<User> users = new ArrayList<>();
@JsonCreator
public Topic(@JsonProperty("success") boolean success,
@JsonProperty("response_comments") List<ResponseComment> responseComments,
@JsonProperty("response_users") List<ResponseUser> responseUsers) {
if (success) {
comments = Util.resolveComments(responseComments);
users = Util.resolveUsers(responseUsers); //some logic
}
}
}
когда я пытаюсь десериализовать JSON, он бросает:
не удалось найти свойство creator с именем "комментарии" (в классе com.тест.домен.картограф.Тема)
Я не хочу заполнять comments
из json, только в конструкторе из свойств. Однако, если я напишу следующие парамы:
@JsonProperty("success") boolean success,
@JsonProperty("response_comments") List<ResponseComment> responseComments,
@JsonProperty("response_users") List<ResponseUser> responseUsers,
@JsonProperty("comments") Object a,
@JsonProperty("users") Object a
все работает.
4 ответов
после нескольких часов модульного тестирования и копирования классов я нашел решение. Я не хочу это признавать, но проблема в Ломбок ' s @AllArgsConstructor. Мне жаль, что я вообще не использовал Ломбок.
без @AllArgsConstructor
на Topic
все работает, как ожидалось. Однако он существует в других классах даже с @JsonCreator
и работает. Прости, что отнял у тебя время.
после работы над этим в течение нескольких часов и подтверждения поведения @Feeco, я смог решить эту проблему, обновив Lombok с v1.16.16 к v1.16.20.