我们当前的课程类似于
public class Attributes {
private String mapping;
.....
和
{
"mapping": "displayName",
.....
这很好用并运送给客户。
我们将JSON
转换为Attribute
类的方式是
JSON.readValue(jsonFile, Attribute.class);
最近要求说,mapping
将是List<String>
而不是String
首先,我想到的快速更改是将mapping
更改为List<String>
,但这会破坏现有客户端。
我通过编写
的测试来尝试assertEquals("displayName", configuration.getMapping().get(0));
它失败了
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token
问题
如何告诉Jackson
将String
读作列表?它将是1项目的列表,但将向后兼容。
由于
答案 0 :(得分:2)
答案是Can not deserialize instance of java.util.ArrayList out of VALUE_STRING
objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);