有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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解析为类型化的MapArray


共 (0) 个答案