Десериализация Jackson CSV игнорирует порядок заголовков - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь десериализовать файл 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...