【问题标题】:How to convert CSV to JSON with value in double quotes using com.fasterxml.jackson.dataformat.csv.CsvMapper in Java?如何在 Java 中使用 com.fasterxml.jackson.dataformat.csv.CsvMapper 将 CSV 转换为带有双引号的 JSON?
【发布时间】:2021-07-11 13:18:01
【问题描述】:

假设 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", Time Zone=Europe/Paris

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

SiteName=TestSite_QA2_0401, Location=QA_LocationAZ_0401, Recurrence Type=FREQ=WEEKLY;BYDAY=MO,WE, Time Zone=Europe/Paris

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

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

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

谢谢。

【问题讨论】:

  • 我看不到您将数据序列化为 JSON 的位置。
  • "csv 格式的一部分,而不是值的一部分。
  • @Henry 使用 csvMapper.readerFor(Map.class).with(bootstrap).readValues(input).readAll() 将 csv 解析为 json

标签: java jackson fasterxml dataformat


【解决方案1】:

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

它会变成引用和转义。

强烈建议不要这样做

【讨论】:

  • 我已经尝试过了,但是得到了一个异常:com.fasterxml.jackson.dataformat.csv.CsvMappingException: Too many entries: expected at most 4 (value #4 (2 chars) "TU" ) 在 [来源:(com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader)
猜你喜欢
  • 2020-12-22
  • 1970-01-01
  • 2018-01-07
  • 2015-10-27
  • 1970-01-01
  • 1970-01-01
  • 2016-02-09
  • 2022-06-10
  • 2021-02-28
相关资源
最近更新 更多