2
我正在嘗試使用Jackson CsvParser讀取一個簡單的CSV文件。 我跟着教程,但我不斷收到以下錯誤:CsvParser「找不到適合類型的構造函數」
com.fasterxml.jackson.databind.RuntimeJsonMappingException: No suitable constructor found for type [simple type, class data.MyPojo$MyPojo]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)
at [Source: [email protected]; line: 2, column: 1]
at com.fasterxml.jackson.databind.MappingIterator.next(MappingIterator.java:121)
CSV文件MYFILE.CSV是非常簡單的:
FirstAddress,SecondAddress
Blah,Blah
Etc,Etc
,因此該代碼:
public class MyPojoLookup {
private final static String FILENAME = "/MYFILE.CSV";
private final static CsvMapper mapper = new CsvMapper();
static {
CsvSchema schema = CsvSchema.emptySchema().withHeader();
InputStream input = (MyPojoLookup.class.getResourceAsStream(FILENAME));
MappingIterator<MyPojo> it;
try {
it = mapper.reader(MyPojo.class).with(schema).readValues(input);
while (it.hasNext()){
MyPojo row = it.next();
log.info(row.toString());
}
} catch (Exception e) {
log.error("Cannot load the addresses", e);
System.exit(-1);
}
}
private class MyPojo {
public String address1;
public String address2;
public MyPojo(String address1, String address2) {
super();
this.address1 = address1;
this.address2 = address2;
}
@Override
public String toString() {
return "MyPojo ["address1=" + address1 + ", address2=" + address2 + "]";
}
}
}
謝謝!那就是訣竅。編號1)雖然不是必需的,只要文件頭匹配POJO屬性,它與我的初始CsvSchema.emptySchema()。withHeader()一起工作。 – Gep