I have the following csv file
id;productCode;cost 123132;10204;524,07 123132;10205;222,02
I am looking for suggestions on how to handle a csv file that have a comma in value (eg cost).
I am using following code:
Class ResultFile
@JsonInclude(Include.NON_EMPTY)
public class ResultFile {
private String id;
private String productCode;
private double cost;
}
Controller
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;
The error
E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[DispatcherServlet]: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type
double
from String "524,07": not a valid Double value at [Source: (com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader); line: 2, column: 14] (through reference chain: com.ibm.gr.melissa.beans.ResultFile["cost"]) at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67) at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1679) at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:935) at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$DoubleDeserializer._parseDouble(NumberDeserializer