SpringMVC 配置返回json处理细节

因为SpringMVC默认使用的是jackson来处理json,它的内部其实是使用了一个ObjectMapper对象,所以我们就需要配置这个ObjectMapper对象。可以使用BeanPostProcessor的来处理。

public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof MappingJackson2HttpMessageConverter) {
       MappingJackson2HttpMessageConverter jsonConverter = (MappingJackson2HttpMessageConverter) bean;
       
        ObjectMapper objectMapper = jsonConverter.getObjectMapper();
       }
}

在这里里面,可以对objectMapper设置一些特性,比如时间的格式(默认是时间戳),是否序列化值为null的属性等等。

  • Jackson 中布尔类型,使用Lombok生成@Getter的情况:
    1. 遇到 prime boolean 为is开头则,生成的json中不会以is开头
      1. 如果在属prime boolan 对象上使用 @JsonProperty注解指定名称为is开头,则会有is的和没有is的都会出现。
    2. 如果遇到的是 对象 Boolean 为is开头,则生成json中以is开
  • Jackson 在序列化时如果json中的属性名和对象中的不一致,可以使用在属性上使用@JsonAlias来指定别名

Leave a Comment

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据