[英]CSV Jackson mapper numerical fields into String
Is it possible wrap a numeric field from a pojo between quotes using CsvMapper from the jackson library?是否可以使用 jackson 库中的 CsvMapper 在引号之间包装来自 pojo 的数字字段?
public class Pojo{
public String name;
public int age;
}
Using CSVMapper jackson使用 CSVMapper 杰克逊
Pojo pojo = new Pojo();
pojo.name= "Peter";
pojo.age= 22;
final CsvMapper csvMapper = new CsvMapper();
csvMapper.configure(CsvGenerator.Feature.ALWAYS_QUOTE_STRINGS, true);
final CsvSchema schema = csvMapper.schemaFor(Pojo.class).withoutHeader().withQuoteChar(CsvSchema.DEFAULT_QUOTE_CHAR);
final ObjectWriter ow = csvMapper.writer(schema);
System.out.println(ow.writeValueAsString(pojo))
My expected output will be "peter","4"
but I'm getting "peter",4
:c我的预期输出将是
"peter","4"
但我得到的是"peter",4
:c
Just add只需添加
@JsonFormat(shape=JsonFormat.Shape.STRING)
to the int field of your pojo class :到你的 pojo 类的 int 字段:
public class Pojo{
public String name;
@JsonFormat(shape=JsonFormat.Shape.STRING)
public int age;
}
It can looks weird since it's a JSON annotation and not CSV, but it's close enough to works它看起来很奇怪,因为它是一个 JSON 注释而不是 CSV,但它足够接近工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.