为简单起见,这是一个简单的类:
class GetterMethodsObject {
int id = 10;
public int getId() {
return id;
}
// @JsonIgnore
public boolean isId() {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
序列化此对象应该给出:
{"id":10}
Run Code Online (Sandbox Code Playgroud)
因为有公共吸气方法.用法示例:
mapper=new ObjectMapper();
mapper.writeValueAsString(object);
Run Code Online (Sandbox Code Playgroud)
但我得到例外:
com.fasterxml.jackson.databind.JsonMappingException:
Conflicting getter definitions for property "id": org.citi.facility.GetterMethodsObject#isId(0 params) vs org.citi.facility.GetterMethodsObject#getId(0 params)
Run Code Online (Sandbox Code Playgroud)
由于id是Integer这样,我期待Jackson调用getId()方法,但不是isId().isId()只有当id是boolean时才应该调用方法?即使我@JsonIgnore说它没有帮助.我不能改变实际的对象.如何解决这个问题?