Я пытаюсь десериализовать файл csv (tsv) в неизменяемый POJO.
Джексон присваивает значения неправильным полям (игнорирует имя заголовка аннотированного столбца) Поля класса записываются втот же порядок, что и в файле.
Нужно ли создавать для этого собственную схему 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);