com.fasterxml.jackson.databind.exc.InvalidDefinitionException

报错信息:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of 'xxx' (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

原因:
com.fasterxml.jackson.databind.ObjectMapper.readValue(String content, Class valueType)方法,传入的class对象没有无参构造器,具体原因是在该对象上同时使用了@Data@AllArgsConstructor注解,@AllArgsConstructor阻止了@Data生成(无参)构造器,从而该对象只有一个全参构造器,没有无参构造器,导致反序列化失败。应当注意显式的构造器和@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor都会抑制@Data生成构造器。

解决方法:
显式添加无参构造器或使用@NoArgsConstructor

你可能感兴趣的:(java,fasterxml,lombok,json)