我正在开发一个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;
解析数据时出现异常:
无法将START_OBJECT标记反序列化为java.util.ArrayList实例