使用 ModelMapper 反序列化 Json 时如何修复错误 START_ARRAY 令牌?

jim*_*mmy 3 java serialization json deserialization modelmapper

我正在尝试反序列化以下格式的 JSON 文件:

[
  ["AA", "GG", "1992/11/18"],
  ["BB", "DD", "2005/02/20"]
]
Run Code Online (Sandbox Code Playgroud)

使用这个类:

public class DataList {
    private List<String> att;
    // constructor, getter and setter
}
Run Code Online (Sandbox Code Playgroud)

正在做:

DataList [] dataList= mapper.readValue(ResourceUtils.getFile("classpath:" + filename), DataList [].class);
Run Code Online (Sandbox Code Playgroud)

但我得到:

    com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `org.example.DataList ` out of START_ARRAY token
 at [Source: (File); line: 2, column: 3] (through reference chain: java.lang.Object[][0])
Run Code Online (Sandbox Code Playgroud)

关于如何修复此错误有什么想法吗?

Анд*_*пов 5

杰克逊不知道如何将字符串数组映射到DataList对象。因此,您应该添加@JsonCreate构造DataList函数来向杰克逊展示要使用什么来进行转换。

public class DataList {

    private List<String> att;

    @JsonCreator
    public DataList(List<String> att) {
        this.att = att;
    }

    // constructor, getter and setter
}
Run Code Online (Sandbox Code Playgroud)