преобразовать файл CSV в json с десятичным разделителем-запятой Джексон

У меня есть следующий файл csv

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

Я ищу предложения о том, как обрабатывать CSV-файл, в котором значение запятой (например, стоимость).

Я использую следующий код:

Класс ResultFile

@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: [Ошибка сервлета]-[DispatcherServlet]: com.fasterxml.jackson.databind.exc.InvalidFormatException: невозможно десериализовать значение типа doubleиз строки "524,07": недопустимое значение типа Double в [Источник: (com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader); строка: 2, столбец: 14] (через цепочку ссылок: com.ibm.gr.melissa.beans.ResultFile["стоимость"]) в com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67) в com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1679) в com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:935) в com.faster.datab.jack.std.NumberDeserializers$DoubleDeserializer._parseDouble(NumberDeserializer

0 ответов

Другие вопросы по тегам