0

我有以下 csv 文件

id;productCode;cost
123132;10204;524,07 
123132;10205;222,02

我正在寻找有关如何处理具有逗号值(例如成本)的 csv 文件的建议。

我正在使用以下代码:

类结果文件

@JsonInclude(Include.NON_EMPTY)
public class ResultFile {

    private String id;
    private String productCode;
    private double cost;   
}

控制器

File temporaryFile = new File("input.csv");
CsvSchema csvSchema = CsvSchema.emptySchema().withHeader().withColumnSeparator(';').withoutQuoteChar();
CsvMapper csvMapper = new CsvMapper();
csvMapper.enable(SerializationFeature.INDENT_OUTPUT);
List<Object> data = csvMapper.readerFor(ResultFile.class).with(csvSchema).readValues(temporaryFile).readAll();
ObjectMapper mapper = new ObjectMapper();
String st = mapper.writeValueAsString(data);
System.out.println(mapper.defaultPrettyPrintingWriter().writeValueAsString(data));
return st;

错误

E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E:[Servlet 错误]-[DispatcherServlet]:com.fasterxml.jackson.databind.exc.InvalidFormatException:无法反序列化类型的值double来自字符串“524,07”:在 [Source: (com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader) 处不是有效的 Double 值;行:2,列:14](通过引用链:com.ibm.gr.melissa.beans.ResultFile["cost"])在 com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67 ) 在 com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:935) 在 com.fasterxml.jackson.databind.deser 的 com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1679)。 std.NumberDeserializers$DoubleDeserializer._parseDouble(NumberDeserializer

4

0 回答 0