我正在尝试将csv(tsv)文件反序列化为不可变的POJO。
Jackson正在将值分配给错误的字段(它忽略了带注释的列标题名称) 类字段的写入顺序与文件中的顺序相同。
我真的必须为此创建自定义CSV模式吗?无论如何,“ withHeader()”的意义是什么,只需忽略第一行?
我尝试编辑csv(tsv)文件的标题,将名称更改为未注释的名称,但是没有发生错误。
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
public Person(@JsonProperty("name") String name,
@JsonProperty("address") String address,
@JsonProperty("phone") String phone) {
this.name = name;
...
}
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(Person.class).withColumnSeparator('\t').withHeader();
MappingIterator<Person> it = mapper.readerFor(Person.class).with(schema).readValues(file);