我的用例是将 Java POJO 转换为字符串,以便可以将其传递以发布到 AWS Kinesis Firehose Stream。
我正在写这个convertToString()
,但我无法找到逃避分隔符的正确方法。
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;
}
输入:SuperHero flash = new SuperHero(1, "Flash", "Barry , Allen", "DC");
预期输出:1,Flash,“Barry \,Allen”,DC
我得到的输出:1,Flash,“Barry,Allen”,DC
有人可以指出我做错了什么吗?