如何使用 Java 中的 com.fasterxml.jackson.dataformat.csv.CsvMapper 将带有双引号值的 CSV 转换为 JSON?

问题描述

假设 CSV 数据如下所示:

站点名称、位置、重复类型、时区 TestSite_QA2_0401,QA_LocationAZ_0401,"FREQ=WEEKLY;BYDAY=MO,WE",欧洲/巴黎

预期的 JSON:

SiteName=TestSite_QA2_0401,Location=QA_LocationAZ_0401,Recurrence Type="FREQ=WEEKLY;BYDAY=MO,WE",时区=欧洲/巴黎

使用以下逻辑得到的实际结果:

SiteName=TestSite_QA2_0401,Location=QA_LocationAZ_0401,重复类型=FREQ=WEEKLY;BYDAY=MO,WE,时区=欧洲/巴黎

我正在使用以下逻辑将此 CSV 数据映射到 JSON:

CsvSchema 引导程序 = CsvSchema.emptySchema().withHeader(); CsvMapper csvMapper = new CsvMapper(); 返回 csvMapper.readerFor(Map.class).with(bootstrap).readValues(input).readAll();

非常感谢任何建议/帮助。

谢谢。

解决方法

您可以添加.withQuoteChar((char) 0).withEscapeChar((char) 0)

它会转为引用和转义。

强烈建议你不要这样做