首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用jackson-dataformat-csv从CSV中用新行解析双引号

用jackson-dataformat-csv从CSV中用新行解析双引号
EN

Stack Overflow用户
提问于 2022-07-03 07:15:50
回答 1查看 129关注 0票数 1

我有以下CSV格式:

代码语言:javascript
复制
id,name,description,age
23,Anna,"Self-made
Chef
Shoemaker",23

只有当属性是多行时,双引号才会出现.虽然我已经能够正确地阅读正常的CSV:

代码语言:javascript
复制
@Bean
public CsvMapper csvMapper() {
    CsvMapper csvMapper = new CsvMapper();
    csvMapper.registerModule(new JavaTimeModule());
    csvMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    return csvMapper;
}

我尝试添加了一个新特性:

代码语言:javascript
复制
csvMapper.configure(Feature.FAIL_ON_MISSING_COLUMNS, true);

但它使库跳过失败的行。如何解析给定的格式并将整个Self-made\n Chef\n Shoemaker转换为description属性?

EN

回答 1

Stack Overflow用户

发布于 2022-07-03 15:00:07

根据我对CSVDecoder类(链接)中的代码的解读,版本2.14中的Jackson解析器将正确解析嵌入换行的双引号字符串。查找_nextQuotedString方法。不需要设置属性来启用它。它是无条件发生的。

实际上,看起来代码的相关行在至少5年内没有改变。

所以..。如果CSV解析器无法为您工作(没有该Feature),我的诊断是:

  • 要么你用的是杰克逊的老版本,
  • 或者你看到的明显不完整的值是在CSV解析之后注入到某个地方/某种程度上的。

如果这不能解决您的问题,请向问题中添加一个最小可重现性示例,并告诉我们您正在使用的杰克逊依赖项的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72844595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档