2016-10-24 44 views
2

POJOをCSVにシリアライズするときに、カスタムヘッダー名を定義することは可能ですか?jackson-dataformat-csv - カスタムの列名は可能ですか?

つまり、PoJOにsomeFieldという名前のフィールドがある場合、出力CSVファイルのヘッダー列をたとえばSome custom field nameとしたいと思います。

ありがとうございました。

+0

把握しましたか? – 0xbe5077ed

+0

悲しいことに、私は成功していないジャクソンといくつかの異なる方法で試しました。私はapache commons csvに落ちた。あなたに助けがあれば、私はその事例を見つけ出すことができます。 – bbd127

答えて

2

あなただけのCSVエクスポートのためにそれらの名前を使用したいので、それは、ミックスインを使用して可能です:

みましょうあなたは、ゲッターを使用してPOJOクラスでidフィールドを持っていると仮定します。そして、あなたは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); 
関連する問題