I need to write object such
class User {
UUID id;
String name;
Role role;
}
class Role {
String name;
LocalDate activeFrom;
Authority owner;
}
class Authority {
String name;
}
The tricky think is that csv writing should work recursively throught objects tree. Also need to write LocalDate as a String like 2019-11-05 f.e.;
The resulting csv file should be flat and looks like:
user.id,user.name,user.role.name,user.role.activeFrom,user.role.owner.name
// example values
I've tried already OpenCsv:
StatefulBeanToCsv<User> beanToCsv = new StatefulBeanToCsvBuilder<User>(printWriter).build();
try {
beanToCsv.write(users);
} catch (CsvDataTypeMismatchException | CsvRequiredFieldEmptyException e) {
e.printStackTrace();
}
printWriter.close();
and Univocity parsers:
CsvWriterSettings settings = new CsvWriterSettings();
ObjectRowWriterProcessor processor = new ObjectRowWriterProcessor();
settings.setRowWriterProcessor(processor);
processor.convertType(User.class, );
No luck so far. They can serialize to csv only top level object. Also in OpenCsv I had issue to serialize LocalDate. Can You help me? Advise approach or library?