3 votes

Jackson-dataformat-csv - les noms de colonnes personnalisés sont-ils possibles ?

Est-il possible de définir des noms d'en-tête personnalisés lors de la sérialisation d'un POJO en CSV.

En d'autres termes, si j'ai un champ nommé someField dans mon PoJO, je voudrais que la colonne d'en-tête dans le fichier CSV de sortie soit nommée Nom personnalisé du champ par exemple.

Merci.

4voto

Piotr Points 87

Il est possible avec l'utilisation de mixins, car vous souhaitez utiliser ces noms uniquement pour l'exportation au format CSV :

Supposons que vous ayez un champ id dans votre classe Pojo avec un getter. Ensuite, créez une classe abstraite PojoFormat :

public abstract class PojoFormat {
    @JsonProperty("ID du rapport")
    abstract Integer getId();
}

Et dans votre code, utilisez-le de cette manière :

    CsvMapper mapper = new CsvMapper();

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X