有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在使用ModelMapper反序列化Json时修复错误START_数组标记?

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

[
  ["AA", "GG", "1992/11/18"],
  ["BB", "DD", "2005/02/20"]
]

使用该类:

public class DataList {
    private List<String> att;
    // constructor, getter and setter
}

做:

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

但我得到了:

    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])

你知道如何修复这个错误吗


共 (1) 个答案

  1. # 1 楼答案

    Jackson不知道如何将字符串数组映射到DataList对象。因此,您应该在DataList构造函数上添加@JsonCreate,向Jackson展示转换使用的内容

    public class DataList {
    
        private List<String> att;
    
        @JsonCreator
        public DataList(List<String> att) {
            this.att = att;
        }
    
        // constructor, getter and setter
    }