资讯专栏INFORMATION COLUMN

Jackson 序列化对象成 JSON 字符串,忽略部分字段(属性)

lijinke666 / 2568人阅读

摘要:属性上加这种方式作用于全局,只要是有这个对象的序列化,就会忽略注解过的这部分字段。添加过滤的字段,这里过滤的是这个下的三个字段定义一个类或接口原文链接

1、属性上 加 @JsonIgnore

这种方式作用于全局,只要是有这个对象的序列化,就会忽略注解过的这部分字段。

2、上面那种方式需要在 bean 上加注解,作用于全局,但是有的时候,我们可能不需要在所有情况下都忽略这个对象的这些字段,下面这种方式可以支持定制过滤方式。

public final class JsonFilterUtil {

    /**
     * 添加过滤的字段,这里过滤的是 ThinActivityInfo 这个 bean 下的 
     * "startAt", "expiredAt", "extra" 三个字段
     */
    public static void addFilterForMapper(ObjectMapper mapper) {
        SimpleBeanPropertyFilter fieldFilter = SimpleBeanPropertyFilter.serializeAllExcept(
                Sets.newHashSet("startAt", "expiredAt", "extra"));
        SimpleFilterProvider filterProvider = new SimpleFilterProvider().addFilter("fieldFilter", fieldFilter);
        mapper.setFilterProvider(filterProvider).addMixIn(ThinActivityInfo.class, FieldFilterMixIn.class);
    }

    /**
     * 定义一个类或接口
     */
    @JsonFilter("fieldFilter")
    interface FieldFilterMixIn{
    }
}

原文链接
http://zhige.me/2019/02/28/20...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73481.html

相关文章

  • 将多个JSON字段映射到单个Java字段

    摘要:简介本文中,教大家如何使用和将不同的字段映射到单个字段中。这两个注解将帮助我们把属性映射到同一字段。因此,将知道文档中映射到字段的其他字段的名称。 简介 本文中,教大家如何使用Jackson和Gson将不同的JSON字段映射到单个Java字段中。 Maven依赖 为了使用Jackson和Gson库,我们需要在POM中添加以下依赖项: com.google.code.gson ...

    printempw 评论0 收藏0
  • 百度java学习笔记

    摘要:一般在存当前含有当前时间的实体时,只需要配置好数据库的存储字段即可。基本代码部分循环的写法 这几天初步了解了百度云的后台架构部分,当然了,自己了解的仅限于后台java相关的部分,先说一下客户端这边使用的技术:1、spring boot : 与前端进行直接交互的服务是用spring来实现的(后台服务还需要调用其他的基础服务,如redis 数据库服务 订单服务 cdn服务 openstac...

    codeGoogle 评论0 收藏0
  • java json 库之 jackson

    摘要:是一个库,提供了完备的解析,序列化以及反序列化功能依赖配置在里面添加依赖配置解析调用就能讲字符串解析成一个对象,然后通过方法就可以获取中各个字段的值了,这种方式可以用来读取格式的配置文件,可以用一个打开特性,可以在里面加入注释 jackson 是一个 java json 库,提供了完备的 json 解析,序列化以及反序列化功能 依赖配置 在 build.gradle 里面添加依赖配置 ...

    y1chuan 评论0 收藏0
  • 微服务spring-cloud中 redis cache annotation操作指北

    摘要:同样,还有四实现原理结合以及实现首先,定义名称前缀所需要包含的键值过期时间定义切面类,用于接受的响应注册到容器,必须加入这个注解该注解标示该类为切面类,切面是由通知和切点组成的。 一 什么是Cache 1 Cache Cache通常意义上是指高速缓存,它与数据库最大的区别是更快,可能会快上100倍,而且Cache是全部运行在内存中,而数据库中的数据一般都是存在硬盘中,而IO一直都是网站...

    curried 评论0 收藏0
  • Java常用json列化工具的部分局限性

    摘要:我最终的解决方案是用反序列化,再利用反射工具来对某些数值进行到的转化。速度快,但是对反序列化的类也有一定要求,而且在反序列化复杂的时较多阿里云的很多也由于这个原因并未使用。 Problem 在写Java的Unit Test时,对于Unit Test所期望的值,一般是利用工具从test/resources目录下将expectResult.json读取进来并用json序列化工具进行反序列化...

    elliott_hu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<