我想用jackson CsvMapper将Pojos序列化/反序列化为csv格式。我的pojos:
public class User implements Serializable {
String name;
@JsonUnwrapped(prefix = "||")
Role role;
String email;
}
public class Role implements Serializable {
Long id;
String name;
}
我现在得到的是什么:
name|email|||id|||name
New User|newuser@gmail.com|1|User
New User2|newuser2@gmail.com|1|User
New User3|newuser3@gmail.com|1|User
我希望得到像以下分隔符的内容:
New User|newuser@gmail.com|||1|User
(只有嵌套对象与其他分隔符分隔,不是它的字段,而且分隔符也必须应用于数据,而不仅仅应用于标题) 我还需要在行内移动嵌套对象。例如预期结果:
New User|||1|User|||newuser@gmail.com
我目前的架构和序列化代码:
CsvSchema userSchema = csvMapper
.schemaFor(User.class)
.sortedBy("name", "role.name", "role.id", "email")
.withoutQuoteChar()
.withColumnReordering(true)
.withColumnSeparator('|')
.withHeader();
csvMapper.writer(userSchema).writeValueAsString(users);