是否可以有多个@JsonCreator
方法,并且杰克逊可以根据方法定义来检测它应该使用哪个方法?
@JsonCreator
public static StateOfComm factory(String id) {
return StateOfComm.valueOf(id);
}
@JsonCreator
public static StateOfComm factory(CustomType value) {
return StateOfComm.valueOf(value.getId());
}
失败的JSON(因为id = null)如下:
{"comment":null, "processes":[{"stateOfComm":{"id":"CA"}}]}
以下作品:
{"comment":null, "processes":[{"stateOfComm":"CA"}]}
答案 0 :(得分:2)
我能够通过以下方式解析您问题中的两个JSON示例:
答案 1 :(得分:1)
您可以拥有多个@JsonCreator方法,但需要使用@JsonProperty来指定要初始化的属性。
@JsonCreator
public static StateOfComm factory(@JsonProperty("id") String id) {
return StateOfComm.valueOf(id);
}
@JsonCreator
public static StateOfComm factory(@JsonProperty("value") CustomType value) {
return StateOfComm.valueOf(value.getId());
}
答案 2 :(得分:0)
我通过摆脱const btn1 = document.querySelector('#btn1')
btn1.addEventListener('click', (e)=>{
const textContent = e.target.textContent
})
const btn2 = document.querySelector('#btn2')
btn2.addEventListener('click', () => {
console.log(textContent)
})
批注并使用自定义的@JsonCreator
来解决了这个问题。
这里是一个例子:
StdDeserializer