Jackson -Filter具有@Jsonfilter批注的子项的嵌套对象属性

时间:2019-05-17 13:55:08

标签: java jackson

我正在尝试过滤嵌套的Object属性。嵌套对象使用@JsonFilter注释。我无法过滤特定于子过滤器的Bar。条形过滤器适用于所有孩子。我的JSON结构如下:

public class Parent {
    private Bar bar;

    @JsonProperty("bar")
    public Bar getBar() {     
    //Some logics here 
        //returning bar
    }
}

@JsonFilter("myFilter1")
public class Child1 extends Parent {
    //some properties
}

@JsonFilter("myFilter2")
public class Child2 extends Parent {
    //some properties
}

@JsonFilter("Bar")
public class Bar {
    private Map<String, Object> field1;
    public Bar(Map<String, Object> field1) {
        this.field1 = field1;
    }

    @JsonAnyGetter
    public Map<String, Object> getField1() {
        return field1;
    }
}

我的问题是:如何仅对child1而不对child2过滤field1 我尝试过如下过滤:

provider.addFilter(Bar, SimpleBeanPropertyFilter.serializeAllExcept("x");

,但在child2对象中也用x过滤。 预期输出:

Bar
    filter1
    {    
     y:20
    }

    filter1
    {
    x:10
    y:20
    }

0 个答案:

没有答案