java - Bean -> Csv 与 OpenCsv 的自定义值映射
问题描述
OpenCsv 有没有办法以自定义方式将类字段转换为 csv 列,而不需要自定义 DTO 或额外的自定义字段?
在将 bean 序列化为 csv 时,我试图将内部字符串表示形式转换为人类可读的表示形式。
为此,我尝试使用CsvCustomBindByName:
@CsvCustomBindByName(column = "My Column", converter = MyColumnConverter.class)
private String myColumnInternal;
在哪里:
public class MyColumnConverter extends AbstractBeanField {
@Override
protected Object convert(String code) throws CsvDataTypeMismatchException, CsvConstraintViolationException {
return code + " foo bar";
}
}
但是,我的自定义转换方法在 bean -> csv 序列化期间没有被收集。为了完整性 - 这是我的序列化代码:
ColumnPositionMappingStrategy<MyType> mappingStrategy = new ColumnPositionMappingStrategy();
mappingStrategy.setType(MyType.class);
StatefulBeanToCsv<MyType> beanToCsv = new StatefulBeanToCsvBuilder<MyType>(writer)
.withMappingStrategy(mappingStrategy).build();
beanToCsv.write(Collections.singletonList(MyType));
解决方案
推荐阅读
- c - 遍历二叉搜索树,如何避免代码重复
- php - CodeIgniter,无法调用库类“模板”的函数
- r - 循环遍历数据框以在 R 中创建绘图
- java - 如何从信号/阵列中切出模式?
- vbscript - Outlook VBScript 签名更改颜色和字体无换行符
- installation - 如何在kali linux上安装hyperion 2.2
- arrays - 在 postgresql 中更新多维数组
- python - 检索张量中 1 的位置或将张量拆分为 1
- html - 如何使用 HTML 将 CSS 中的 DIV 元素居中?
- python - Graph 执行中不允许使用 `tf.Tensor` 作为 Python `bool`。使用 Eager 执行或用 @tf.function 修饰这个函数