com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for
1、出错内容开发时,遇到返回给前台一个JSON报错的问题。com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class xxx and no properties discovered to create BeanSerializer (to avoid exception,
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"
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)