My use case was to convert an Java POJO into String so it can be passed to be published to AWS Kinesis Firehose Stream.
I was writing this convertToString()
, but I'm unable to find the correct way to escape delimiter.
public <T> List<String> convertToString(List<T> objectList, Class<T> tClass) {
List<String> stringList = new ArrayList<>();
char delimiter = ',';
char escape = '\\';
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(tClass);
for (T object : objectList ) {
try{
stringList.add(mapper.writer(schema.withColumnSeparator(delimiter).withEscapeChar(escape))
.writeValueAsString(object));
} catch (JsonProcessingException e) {
System.out.println("Exception : " + e);
}
}
return stringList;
}
Input : SuperHero flash = new SuperHero(1, "Flash", "Barry , Allen", "DC");
Expected Output : 1,Flash,"Barry \, Allen",DC
Output I'm getting : 1,Flash,"Barry , Allen",DC
Can someone point what I'm doing wrong?