Skip to content

介绍

Jackson将对象json化的时候出现错误 (Disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

原因

Jackson在序列化类时,遇到空对象(我遇到的PageResult类),默认情况下会抛出异常。

解决方案

ts

/**
 * mvc的全局处理
 */
@Configuration
public class GlobalConfig extends WebMvcConfigurationSupport {

    /**
     * 通过继承WebMvcConfigurationSupport并重写configureMessageConverters方法,
     * 实现了全局的HTTP消息转换器配置,简化了后续开发中对JSON处理的配置需求。
     * @param converters
     */
    @Override
    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            super.configureMessageConverters(converters);
            //MappingJackson2HttpMessageConverter添加到Spring MVC的消息转换器列表中,
            //确保在HTTP请求和响应中能够正确处理JSON数据。
        converters.add(mappingJackson2HttpMessageConverter());
    }

    private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){
        ObjectMapper objectMapper = new ObjectMapper();
        //ObjectMapper被配置为在序列化空对象时
        //不会抛出异常(FAIL_ON_EMPTY_BEANS设置为false),增强了系统的健壮性。
        objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);
        converter.setObjectMapper(objectMapper);
        return converter;
    }
}

相关文章

Jackson序列化JSON时忽略Null值

上次更新于: