jackson-dataformat-csv - 是否可以自定义列名?

jackson-dataformat-csv - are custom column names possible?

在将 POJO 序列化为 CSV 时是否可以定义自定义 header 名称。

换句话说,如果我的 PoJO 中有一个名为 someField 的字段,我希望输出 CSV 文件中的 header 列被命名为 Some custom field name

谢谢。

可以使用 mixins,因为您只想将这些名称用于 csv 导出:

假设您的 Pojo class 中有 id 字段和 getter。然后你创建 PojoFormat 摘要 class:

public abstract class PojoFormat {
    @JsonProperty("Report Id")
    abstract Integer getId();
}

在你的代码中这样使用它:

    CsvMapper mapper = new CsvMapper();

    mapper.addMixIn(Pojo.class, PojoFormat.class);
    CsvSchema schema = mapper.schemaFor(Pojo.class).withHeader();
    mapper.writer(schema).writeValueAsString(objects);