spring自带Jackson处理器忽略null

Spring Web使用Jackson来实现JSON的序列化

我们假设我们请求属性名字是小写的带下划线字母,而不是驼峰命名法的情况。为了减少响应的大小,我们也要求不要包括为空的属性。
默认情况下,响应被格式化成下面这样:

{    
    "status": "OK",    
    "data": {    
        "id": 1,    
        "name": "Room 1",    
        "roomCategoryId": 1,    
        "description": "Nice, spacious double bed room with usual amenities"    
    },    
    "error": null 
}

首先我们创建一个WebMvcConfigurerAdapter的继承,然后我们提供指示给Jackson怎样格式化JSON信息:

@Configuration
@EnableWebMvc
public class JsonConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(new MappingJackson2HttpMessageConverter(new Jackson2ObjectMapperBuilder().propertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE).serializationInclusion(JsonInclude.Include.NON_NULL)
                .build()));
    }
}

我们配置这个转换器格式名字属性为小写带下划线格式,且我们告诉Jackson忽略null属性。结果将被格式化为如下JSON:

{
    "status": "OK",  
    "data": {    
        "id": 1,    
        "name": "Room 1",    
        "room_category_id": 1,    
        "description": "Nice, spacious double bed room with usual amenities"  
    } 
}

我们可以看到error属性现在消失了,且客房目录ID属性名被格式化成了我们讨论过的格式驼峰命名变下划线命名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值