<分区>
我正在开发一个 Java 项目,该项目使用 Jackson 库解析从外部 API 收到的 JSON 响应。响应中的一个字段有时作为单个对象出现,在某些情况下,它作为对象数组出现。所以我不确定应该选择哪种数据类型来将此响应映射回 Java 对象。我应该如何正确地将这两种响应类型映射到 Java 对象?
在上面提到的可能的重复项中,响应始终是一个列表,但在我的例子中不是。所以我不认为它与上述问题重复。
以下是我收到的回复:
"configuration": {
"additionalServices": {
"type": "Standard DDOS IP Protection"
},
}
有时这就是我收到相同回复的方式:
"configuration": {
"additionalServices": [
{
"type": "Standard DDOS IP Protection"
},
{
"type": "Remote Management"
}
],
}
这就是我的 Java 映射现在的样子:
@JsonIgrnoreProperties(ignoreUnknown = true)
public class Configuration {
private List<AdditionalServices> additionalServices;
}
@JsonIgrnoreProperties(ignoreUnknown = true)
public class AdditionalServices {
private String type;
}
如果我使用下面的声明,那么它将只解析数组输出并为第一个响应抛出异常:
private List<AdditionalServices> additionalServices;
如果我使用下面的声明,那么它将只解析第一个响应并为第二个响应抛出异常:
private AdditionalServices additionalServices;
解析数据异常:
Cannot deserialize instance of java.util.ArrayList out of START_OBJECT token