csv - 杰克逊CSV反序列化忽略标题顺序
问题描述
我正在尝试将 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);
解决方案
推荐阅读
- c++ - 在 C++ 中显示四舍五入的值而不是十进制的精确值
- vuejs3 - 如何在 vuejs3 中编译 vue 模板
- android - 将 ActionBar 按钮的可见性设置为 GONE
- php - PHP 标头位置在某些情况下不起作用
- c# - 将 SQL 转换为 LinQ 语法
- python - 在删除多余空格的同时使用内存
- c# - 代码文档,从常量中获取值
- assembly - 8085 程序从内存位置过滤掉正数
- python - 在 Anaconda 虚拟环境中使用 OpenNMT-tf 2.10 和 tensorflow 2.2 时出现 Cudnn 问题
- javascript - 如何在 React 中循环对象