需求如下,在一个类中,有一些字段属性,其是否输出并不是由字段上的JsonIgnore来决定,而是根据从上下文(如request)中传递过来的某些参数决定。如下类:
class A { @ContextIgnored("field1") private String field1; @ContextIgnored("field2") private String field2; }
当上下文值为 field1 时,则表示 A 的最终输出json 中没有字段 field1. 当上下文为 field2 时, 则最终输出没有字段 field2. 其它情况则输出所有字段。
本文讨论Jackson中的处理方式,如果使用 Fastjson,则有很多方式处理,这里不表.
本文描述通过利用 JsonIgnore 注解处理方式解决此问题 和 通过 PropertyFilter 两种方式来完成此需求的处理方式。
继续阅读“Jackson中基于上下文拦截属性输出的两种实现方式”