objeto - libreria jackson java
@JsonCreator ''No se pudo encontrar la propiedad del creador con el nombre'' incluso con ignoreUnknown=true (3)
Debe agregar @JsonIgnoreProperties(ignoreUnknown = true)
al método del creador / contructor del tema.
Tengo la siguiente clase:
@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
}
}
}
Cuando trato de deserializar JSON, arroja:
No se pudo encontrar la propiedad del creador con el nombre ''comentarios'' (en la clase com.test.domain.mapper.Topic)
No quiero llenar los comments
de json, solo en el constructor de las propiedades. Sin embargo, si escribo los siguientes params:
@JsonProperty("success") boolean success,
@JsonProperty("response_comments") List<ResponseComment> responseComments,
@JsonProperty("response_users") List<ResponseUser> responseUsers,
@JsonProperty("comments") Object a,
@JsonProperty("users") Object a
todo funciona
Después de horas de pruebas unitarias y copia de clases, encontré una solución. No quiero admitirlo, pero el problema en @AllArgsConstructor de Lombok . Lamento que no haya proporcionado que use Lombok en absoluto.
Sin @AllArgsConstructor
en el Topic
todo funciona como se espera. Sin embargo, existe en otras clases incluso con @JsonCreator
y funciona. Lo siento por tu tiempo
Usando @AllArgsConstructor y jackson 2.8.7 de lomback. Actualice jackson a 2.8.8 y resuelva el problema.