我正在尝试使用一个服务,它为我提供了一个具有字段的实体,它是一个数组.
{
"id": "23233",
"items": [
{
"name": "item 1"
},
{
"name": "item 2"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是当数组包含单个项时,将返回项本身,而不是一个元素的数组.
{
"id": "43567",
"items": {
"name": "item only"
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,杰克逊无法转换为我的Java对象.
public class ResponseItem {
private String id;
private List<Item> items;
//Getters and setters...
}
Run Code Online (Sandbox Code Playgroud)
有一个简单的解决方案吗?
Tho*_*ous 19
你并不是第一个提出这个问题的人.看起来很古老.
看完这个问题后,你可以使用DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY:
查看文档:http: //fasterxml.github.io/jackson-databind/javadoc/2.5/com/fasterxml/jackson/databind/DeserializationFeature.html#ACCEPT_SINGLE_VALUE_AS_ARRAY
您需要将此jackson功能添加到对象映射器.
我希望它会对你有所帮助.
Hig*_*ian 10
我认为注释更适合代码。
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
private List<Item> items;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7178 次 |
| 最近记录: |