Как перебрать проанализированный csv с помощью синтаксического анализатора apache commons csv

Я чувствую, что это должно быть очень просто, но я пытался понять это, кажется, целую вечность. У меня есть две запятые с разделителями String, и я использую Apache Commons CSV CSVParser для их анализа. Я хочу просмотреть их и поместить данные в JSONObject.

Вот мой код, может ли кто-нибудь сказать мне, что я делаю неправильно?

ArrayList<String> lblList = new ArrayList<String>();
ArrayList<String> dataList = new ArrayList<String>();

CSVFormat format = CSVFormat.newFormat(',').withQuote('"');
CSVParser labels = CSVParser.parse(rf.getColumnLabels_CSV(), format);
CSVParser data = CSVParser.parse(rf.getData_CSV(), format);
JSONObject entry = new JSONObject();

for (CSVRecord label : labels) {
    lblList.add(label.get(0));
}
for (CSVRecord value : data) {
    lblList.add(value.get(0));
}

for (int i = 0; i < lblList.size(); i++) {
    entry.put(lblList.get(i), dataList.get(i));
}

Почему вы читаете только первый столбец данных CSV? data — содержимое CSV, value — один ряд из этого содержимого, а value.get(0)первый столбец из этой строки. Разве вам не нужны остальные данные в каждой строке?

Andreas 01.03.2019 00:07

@Andreas Спасибо, теперь я вижу, что происходит не так; однако я все еще не могу найти способ фактически перебрать каждый столбец, чтобы получить остальные данные; количество столбцов будет меняться, поэтому я не могу просто сказать value.get(0); value.get(1); value.get(2) и т. д.

DM5963 01.03.2019 00:48

@Andreas Nevermind, я понял это :) Мне просто нужно было перебирать итератор в каждой строке, поэтому

DM5963 01.03.2019 01:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
223
0

Другие вопросы по теме