CsvMapper在读取Bean中的字段名作为文件title行,如何避免驼峰命名,只将Bean中字段原样出力
时间: 2024-01-21 10:17:19 浏览: 11
CsvMapper 默认会使用 JavaBean 中的属性名作为 CSV 文件的标题行,如果要避免驼峰命名,可以使用 CsvSchema 来自定义 CSV 文件的标题行,并将其与 CsvMapper 关联。
以下是一个示例代码:
```
// 定义 JavaBean
public class Person {
private String name;
private int age;
// getter 和 setter 略
}
// 创建 CsvSchema 对象,使用原始字段名作为标题行
CsvSchema schema = CsvSchema.builder()
.setUseHeader(true)
.setColumnSeparator(',')
.build();
// 创建 CsvMapper 对象,并将其与 CsvSchema 关联
CsvMapper mapper = new CsvMapper();
mapper.configure(CsvGenerator.Feature.ALWAYS_QUOTE_STRINGS, true);
mapper.configure(CsvParser.Feature.IGNORE_TRAILING_UNMAPPABLE, true);
ObjectWriter writer = mapper.writerFor(Person.class).with(schema);
// 将 JavaBean 写入 CSV 文件
writer.writeValues(new File("output.csv")).writeAll(personList);
```
在上面的示例代码中,我们使用了 CsvSchema.builder() 方法来创建 CsvSchema 对象,并使用 setUseHeader(true) 方法将标题行设置为 true,然后使用 setColumnSeparator(',') 方法将列分隔符设置为逗号。最后,我们将 CsvMapper 对象与 CsvSchema 对象关联起来,并使用 writerFor 方法创建一个 ObjectWriter 对象来将 JavaBean 写入 CSV 文件。
注意,在这个示例中,我们还使用了一些其他的配置来优化 CSV 文件的生成和解析。配置的详细信息可以参考 CsvMapper 和 CsvSchema 的官方文档。