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

使用jackson-dataformat-csv解析csv的双引号
EN

Stack Overflow用户
提问于 2017-11-29 12:27:03
回答 1查看 5.5K关注 0票数 7

我有一个csv,它包含以下内容

代码语言:javascript
复制
EANHotelID|SequenceNumber|Name|Address1|Address2|City|StateProvince|PostalCode|Country|Latitude|Longitude|AirportCode|PropertyCategory|PropertyCurrency|StarRating|Confidence|SupplierType|Location|ChainCodeID|RegionID|HighRate|LowRate|CheckInTime|CheckOutTime
541454|99999999|Hotel Maan Residency|"B" Wing, Gopal Palace, opp. ocean park|Naherunagar-Satellite Road|Ahmedabad||380 015|IN|23.02266|72.53842|AMD|1|INR|3.0||ESR|Near Kankaria Lake|||0|0|10:00 AM|10:00 AM

现在,我尝试使用以下代码将csv中的每一行读取为对象

代码语言:javascript
复制
    CsvMapper mapper = new CsvMapper();
    mapper.findAndRegisterModules();

    File csvFile = new File("D:\\ActivePropertyList.txt.bak2");

    CsvSchema schema = CsvSchema.emptySchema().withHeader().withColumnSeparator('|').withNullValue("");
    MappingIterator<Map<String,String>> it = mapper.readerFor(Map.class).with(schema)
                .readValues(csvFile);

    while (it.hasNextValue()) {
        Map<String,String> value = it.nextValue();
    }

但是它失败了,因为"B"存在于csv中。我得到以下错误:

原因: com.fasterxml.jackson.core.JsonParseException:意外字符('W‘(代码87)):预期分隔符('"’“(代码34))或行尾源:(com.fasterxml.jackson.dataformat.csv.impl.UTF8Reader);行: 2,列: 43

如何正确解析csv中的双引号?我试着和schema.withEscapeChar() schema.withQuoteChar()一起玩,但是我没能让它开始工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-07 06:51:57

在模式上使用withoutQuoteChar()处理csv内容中的双引号,即

代码语言:javascript
复制
CsvSchema.emptySchema().withHeader().withColumnSeparator('|').withNullValue("").withoutQuoteChar();
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47552871

复制
相关文章

相似问题

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