com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for

  • Post author:
  • Post category:其他




1、出错内容

开发时,遇到返回给前台一个JSON报错的问题。

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class xxx and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: xxx["data"]->java.util.ArrayList[0]->xxx["xx字段"])



2、解决方法

通过查阅发现可以使用@JsonIgnoreProperties(value = {“xxx”})加到类上,xxx为报错的属性,顺利解决。总结如下:

@JsonIgnore注解用来忽略某些字段,可以用在变量或者Getter方法上,用在Setter方法时,和变量效果一样。这个注解一般用在我们要忽略的字段上。

@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段。这个注解还可以指定要忽略的字段,例如@JsonIgnoreProperties({ “password”, “secretKey” })

@JsonFormat可以帮我们完成格式转换。例如对于Date类型字段,如果不适用JsonFormat默认在rest返回的是long,如果我们使用@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”),就返回”2018-11-16 22:58:15″



版权声明:本文为qq_21190847原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。