我无法将数据从CSV导入到我的项目中。
如果数据失败,我将得到RuntimeJsonMappingException
。
对我来说,这不是必须的,我可以跳过这些失败的数据。但是我没有找到解决方案。
我尝试设置一些JsonParser.Feature
,但对我来说不起作用。
Jackson版本是2.8.11
对于反序列化,我使用以下代码:
public <T> Iterable<T> deserialize(Class<T> clazz, String csv,List<String> possibleHeaderStarts ) {
CsvMapper csvMapper = new CsvMapper();
CsvSchema csvSchema = csvMapper.typedSchemaFor(clazz);
csvSchema = csvSchema.withSkipFirstDataRow( isSkipFirstDataRow( csv, possibleHeaderStarts ) );
MappingIterator<T> it;
try {
it = csvMapper.reader(clazz).with(csvSchema).readValues(csv);
} catch (IOException e) {
throw new IllegalArgumentException("Can't parse CSV", e);
}
return () -> it; // convert iterator to iterable by instantiating an anonymous class
}
有什么想法吗?
StackTrace:
com.fasterxml.jackson.databind.RuntimeJsonMappingException:无法 从字符串“ er2345”反序列化类型java.lang.Integer的值:否 有效的Integer值,位于[来源:java.io.StringReader@25bb4fce; 第3行,第38列](通过参考链: com.mypackage.MyClass [“ myField”])