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

Posted

技术标签:

【中文标题】jackson-dataformat-csv - 是不是可以自定义列名?【英文标题】:jackson-dataformat-csv - are custom column names possible?jackson-dataformat-csv - 是否可以自定义列名? 【发布时间】:2017-03-06 09:30:45 【问题描述】:

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

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

谢谢。

【问题讨论】:

你有想过这个吗? 遗憾的是,我尝试了几种不同的方式与杰克逊一起尝试,但没有成功。我回到了 apache commons csv。如果对你有帮助,我可以举个例子。 【参考方案1】:

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

假设您的 Pojo 类中有 id 字段和 getter。然后你创建 PojoFormat 抽象类:

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);

【讨论】:

@Piotr 很抱歉一直没有注意到您的回复。我根据您帖子上的投票和 cmets 将您的答案标记为已接受。 csv 导入怎么样?

以上是关于jackson-dataformat-csv - 是不是可以自定义列名?的主要内容,如果未能解决你的问题,请参考以下文章