异常信息
springboot默认包Jackson序列化空对象异常,异常信息如下
org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class cn.com.essence.outreach.dto.kotc.KOTC_L2610101_RESP$L2610101]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class cn.com.essence.outreach.dto.kotc.KOTC_L2610101_RESP$L2610101 and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: cn.com.essence.common.models.StandardResponse["data"]->cn.com.essence.outreach.dto.kotc.KOTC_L2610101_RESP["l2610101_LIST"]->java.util.ArrayList[0])
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:353)
at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:277)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
原因
出现该异常的原因是序列化的数据是个空对象,如 new object()。
解决方案
使用注解@JsonInclude(Include.NON_NULL),它是作用是jackson 实体转json 为NULL的字段不参加序列化,可以用在类或者字段属性上。