java jacksondataformatcsv:映射不带POJO的数值
我试图用jackson-dataformat-csv
解析一个CSV文件,我想把数字列映射到java类型的数字
CsvSchema schema = CsvSchema.builder().setUseHeader(true)
.addColumn("firstName", CsvSchema.ColumnType.STRING)
.addColumn("lastName", CsvSchema.ColumnType.STRING)
.addColumn("age", CsvSchema.ColumnType.NUMBER)
.build();
CsvMapper csvMapper = new CsvMapper();
MappingIterator<Map<String, Object>> mappingIterator = csvMapper
.readerFor(Map.class)
.with(schema)
.readValues(is);
while (mappingIterator.hasNext()) {
Map<String, Object> entryMap = mappingIterator.next();
Number age = (Number) entryMap.get("age");
}
我希望entryMap.get("age")
应该是Number
,但我得到的是String
我的CSV文件:
firstName,lastName,age
John,Doe,21
Error,Name,-10
我知道CsvSchema
可以很好地使用POJO,但是我需要处理任意的CSV模式,所以我不能为每种情况创建一个新的java类
有没有办法将CSV解析为类型化的Map
或Array
共 (0) 个答案