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是一种非常简单的格式来编写您自己的解析器 - 根据您的需要,这可能是最直接的选择。