unrecognized objeto not marked libreria ignorable convertir java jackson

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.