使用Jackson-Dataformat-CSV从CSV中解析双引号



我有一个包含以下

的CSV
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中的每一行作为对象

    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();
    }

,但由于CSV中存在的"B"而失败了。我收到以下错误:

由:com.fasterxml.jackson.core.jsonparseexception:出乎意料 字符('W'(代码87)):预期分隔符('"(代码34))或 [来源: (com.fasterxml.jackson.dataformat.csv.impl.utf8reader);线:2, 列:43]

如何正确解析CSV中的双引号?我尝试使用schema.withEscapeChar() schema.withQuoteChar()玩耍,但我无法工作。

在架构上使用withoutQuoteChar()处理CSV内容中的双引号,即

CsvSchema.emptySchema().withHeader().withColumnSeparator('|').withNullValue("").withoutQuoteChar();

相关内容

  • 没有找到相关文章

最新更新