一个简单的课程"是"方法和"得到"方法。我希望Jackson
忽略调用所有"是"方法
我尝试通过设置为
来设置ObjectMapper
的可见性
mapper.setVisibility(PropertyAccessor.IS_GETTER, Visibility.NONE);
但它还在考虑is-getter
方法,为什么?
Jackson
序列化getter方法和公共变量。是否可以指示Jackson
仅调用公共getter方法而不是序列化变量?
答案 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
}