Как проанализировать CSV с полями JSON, содержащими разделитель? - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть следующий CSV-файл с полем JSON, которое может содержать разделитель:

2.0.0|2018-11-04 10:10:14,471|eventname|{"fieldA":"value with separator | inside","fieldB":"54321"}|123456|empty

Я пытался использовать следующий код, чтобы получить все поле, но он всегда разделяется внутренним разделителем:

String csvLine = "2.0.0|2018-11-04 10:10:14,471|eventname|{\"fieldA\":\"value with separator | inside\",\"fieldB\":\"54321\"}|123456|empty"; 

CsvParserSettings settings = new CsvParserSettings();
settings.getFormat().setDelimiter("|");
settings.getFormat().setQuote('"');
settings.getFormat().setQuoteEscape('\\');

CsvParser parser = new CsvParser(settings);

String[] row = parser.parseLine(csvLine);
System.out.println(row[3]);

Ожидаемый вывод:

{"fieldA":"value with separator | inside","fieldB":"54321"}

Текущий вывод:

{"fieldA":"value with separator

Как сказать синтаксическому анализатору CSV не разбивать, когда файл находится между кавычками

...