当我尝试解析子列表中的CSV记录时,我遇到了JSefa的问题。
给出以下CSV数据字符串(假设它们是第一行的标题行,此处未显示)
REC,data1,INF,data2,data3,LOL,data4,LOL,data5,LOL,data6
我尝试使用以下模型类将其反序列化到Record
类
@CsvDataType(defaultPrefix = "REC")
class Record {
@CsvField(pos = 0)
int data;
@CsvSubRecordList(pos = 1, records = @Record(prefix = "INF"))
List<Informative> informativeData;
@CsvSubRecordList(pos = 2, records = @Record(prefix = "LOL"))
List<LaughingOutLoud> funnyData;
}
@CsvDataType(defaultPrefix = "INF")
class Informative {
@CsvField(pos = 0)
int data;
@CsvField(pos = 1)
int moreData;
}
@CsvDataType(defaultPrefix = "LOL)
class LaughingOutLoud {
@CsvField(pos = 0)
int data;
}
以及以下CsvConfiguration
csvConfiguration = new CsvConfiguration();
csvConfiguration.setFieldDelimiter(',');
int headerLine = 1;
boolean hasFooter = false;
boolean storeFailedLines = false;
csvConfiguration.setLineFilter(new HeaderAndFooterFilter(headerLine, hasFooter, storeFailedLines));
Record
类已创建,data
已正确填充,但两个List
字段为null
。
但是,如果我尝试解析以下CSV字符串数据,请在子列表之间添加换行符
再次假设它们是第一行的标题行,此处未显示。
REC,data1\r\nINF,data2,data3\r\nLOL,data4\r\nLOL,data5\r\nLOL,data6
它将解析子记录并正确创建List
。
如何在不必在子记录之间放置换行符的情况下解析它?我没有在CsvConfiguration
课程中看到任何可以纠正此问题的属性。