我有一个正在使用的API,该API为特定属性返回两个不同的值。
"Appt":
{
"Start": "2018-07-16T09:00:00-04:00",
"End": "2018-07-16T23:00:00-04:00",
"Extn": {
"NumID": ""
}
}
Extn字段是问题所在。它通常返回上面的对象,并且映射正确,但是有时它将为Ext而不是对象返回一个布尔值。它实际上是"Extn": true
。
我的Java POJO就是这样构造的。...
@Data
@JsonIgnoreProperties(ignoreUnknown=true)
@JsonRootName(value="Appt")
public class Appt {
@JsonProperty("Extn")
private Appt.Extn extn;
@JsonProperty("End")
private String end;
@JsonProperty("Start")
private String start;
@Data
@JsonIgnoreProperties(ignoreUnknown=true)
@JsonRootName(value="Extn")
public static class Extn {
@JsonProperty("NumID")
private String NumID;
}
}
因此,如果 NumID 不存在,因为 Extn 的值只是一个布尔值,Jackson映射器将失败。我如何告诉解串器处理这两种可能的情况?该API无法解决他们的问题,因此我必须加以防范。