使用jackson-dataformat-csv从csv解析双引号

pre*_*oid 6 java jackson-dataformat-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
Run Code Online (Sandbox Code Playgroud)

现在,我尝试使用以下代码将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();
    }
Run Code Online (Sandbox Code Playgroud)

但这是由于"B"csv中存在的原因而失败。我收到以下错误:

由以下原因引起:com.fasterxml.jackson.core.JsonParseException:意外的字符(“ W”(代码87)):预期的分隔符(““”(代码34))或行尾位于[来源:(com.fasterxml .jackson.dataformat.csv.impl.UTF8Reader);第2行,第43列]

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

pre*_*oid 6

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

CsvSchema.emptySchema().withHeader().withColumnSeparator('|').withNullValue("").withoutQuoteChar();
Run Code Online (Sandbox Code Playgroud)