我收到此错误:
HTTP Status 500 - Could not write JSON: Conflicting getter definitions for property "oid"
问题在于该类具有两个类似的方法:
getOID
(不推荐使用)和getOid
但是我不能修改类,因为它只是一个依赖项。
是否可以解决此问题?
答案 0 :(得分:0)
如果您无法修改POJO
,则可以实施自定义序列化程序或使用MixIn feature。
假设您的课程如下所示:
class Id {
private int oid;
@Deprecated
public int getOID() {
return oid;
}
public int getOid() {
return oid;
}
public void setOid(int oid) {
this.oid = oid;
}
@Override
public String toString() {
return "oid=" + oid;
}
}
您需要创建一个具有额外配置的界面:
interface IdIgnoreConflictMixIn {
@JsonIgnore
int getOID();
@JsonProperty
int getOid();
}
现在,您需要注册此接口:
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class JsonMixInApp {
public static void main(String[] args) throws IOException {
Id id = new Id();
id.setOid(1);
ObjectMapper mapper = new ObjectMapper();
mapper.addMixIn(Id.class, IdIgnoreConflictMixIn.class);
mapper.writeValue(System.out, id);
}
}
上面的代码打印:
{"oid":1}
另请参阅: