如何忽视"是' Jackson 2.2.3的方法

时间:2014-03-19 03:50:06

标签: json jackson

一个简单的课程"是"方法和"得到"方法。我希望Jackson忽略调用所有"是"方法

我尝试通过设置为

来设置ObjectMapper的可见性
mapper.setVisibility(PropertyAccessor.IS_GETTER, Visibility.NONE);

但它还在考虑is-getter方法,为什么?

Jackson序列化getter方法和公共变量。是否可以指示Jackson仅调用公共getter方法而不是序列化变量?

1 个答案:

答案 0 :(得分:2)

您应该考虑@JsonAutoDetect注释。例如,(使用此问题中的POJO类:Conflicting getter definitions for property in Jackson 2.2.3解决方案可能如下所示:

@JsonAutoDetect(isGetterVisibility = Visibility.NONE)
class GetterMethodsObject {

    private int id = 10;

    public int getId() {
        return id;
    }

    public boolean isId() {
        return true;
    }
}

使用示例:

ObjectMapper mapper = new ObjectMapper();
ObjectWriter objectWriter = mapper.writerWithDefaultPrettyPrinter();
System.out.println(objectWriter.writeValueAsString(new GetterMethodsObject()));

以上程序打印:

{
  "id" : 10
}