繁体   English   中英

杰克逊JSON-@JsonProperty覆盖@JsonView?

[英]Jackson JSON - @JsonProperty overriding @JsonView?

我有以下课程:

 class Bean {
    private int x;
    private int y;
    public Bean(int x, int y) {
        this.x = x;
        this.y = y;
    }
    @JsonProperty("x")
    @JsonView(View1.class)
    public void setX(int x) {
        this.x = x;
    }
    public int getX() {
        return this.x;
    }
    @JsonProperty("y")
    public void setY(int y) {
        this.y = y;
    }
    public int getY() {
        return this.y;
    }
}

和一个视图:

class View1 {

}

我希望_mapper.writerWithView(View1.class).writeValueAsString(bean)返回{"x":1} ,因为x是附加了视图的唯一值,但是我得到了{"x":1,"y":2}

它为什么要这样做,我怎么才能不这样做呢? 我知道我可以删除@JsonProperty("y") ,但是如果我选择使用普通的writer而不是writerWithView,我仍然希望能够序列化所有值。

您必须在_mapper对象中禁用DEFAULT_VIEW_INCLUSION功能。

看我的例子:

ObjectMapper _mapper = new ObjectMapper();
_mapper.disable(MapperFeature.DEFAULT_VIEW_INCLUSION);
ObjectWriter objectWriter = _mapper.writerWithView(View1.class);

String json = objectWriter.writeValueAsString(bean);
System.out.println(json);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM