美文网首页
springboot jackson

springboot jackson

作者: 逮到兔子的狐狸 | 来源:发表于2021-02-20 13:59 被阅读0次

    记录一个笔记,jackson 序列化会改变大小写

    @Data
    @AllArgsConstructor
    class Student {
        private String cId;
    }
    
    目标输出 {'cId':'12'}
    实际输出 {'cid':'12'}
    
    @Configuration
    public class JacksonConfig {
        @Bean
        @Primary
        @ConditionalOnMissingBean(ObjectMapper.class)
        public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
            ObjectMapper objectMapper = builder.createXmlMapper(false).build();
            // 通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化
            // Include.Include.ALWAYS 默认
            // Include.NON_DEFAULT 属性为默认值不序列化
            // Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化,则返回的json是没有这个字段的。
            // Include.NON_NULL 属性为NULL 不序列化,就是为null的字段不参加序列化
            objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY );
            //序列化后 解决大小写问题
            objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
            objectMapper.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE);
            return objectMapper;
        }
    }
    

    主要是配置

            objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
            objectMapper.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE);
    
    实际输出 {'cId':'12'}
    

    相关文章

      网友评论

          本文标题:springboot jackson

          本文链接:https://www.haomeiwen.com/subject/gggtfltx.html