Jsefa-反序列化CSV的列具有CSV与列的动态数
问题描述:
林,例如动态数:Jsefa-反序列化CSV的列具有CSV与列的动态数
001, a ,b
002, a, b, c
003, a
我想使用Jsefa(或任何其它建议)反序列化一类的形式:
@CsvDataType
public class MyCsv{
@CsvField(pos=0)
private String id
//??
private List<String> data
}
不Jsefa支持呢?
答
由于Google的搜索短语“jsefa csv动态列数”将此问题作为首要答案返回,因此可能答案为“否”。
我怀疑这将无法正常满足你的要求,这是很丑陋的,但考虑到字段默认选项,你可以这样做:
@CsvDataType
public class MyCsv {
@CsvField(pos=0)
private String id
@CsvField(pos=1)
private String data1
@CsvField(pos=2)
private String data2
@CsvField(pos=3)
private String data3
@CsvField(pos=4)
private String data4
@CsvField(pos=5)
private String data5
...
@CsvField(pos=N)
private String dataN
}
与无法等领域CSV中的值将只是null
。
对于一个更清洁的解决方案,我怀疑你需要实现自己的CsvLowLevelDeserializer
,这可能会做与CsvLowLevelDeserializerImpl
一样的大部分工作,但对于最后一个字段,它可以超越分隔符来获取多个值。
最后,CSV是一种非常简单的格式来编写您自己的解析器 - 根据您的需要,这可能是最直接的选择。