Проблема для анализа файла CSV с двойными кавычками с использованием openCSV в Java - PullRequest
0 голосов
/ 10 марта 2019

Я полагаю, что проблема связана с кавычками - "" и запятыми между ними.

У меня есть .csv со следующими данными с сайта IMDB:

tt0100150,7,2011-12-26, «Перекресток Миллера», https://www.imdb.com/title/tt0100150/,movie,7.8,115,1990,"Crime, «Драма, триллер», 117091, 1990-09-21, «Джоэл Коэн, Этан Коэн» tt1001508,6,2010-10-24, Он просто не для тебя, https://www.imdb.com/title/tt1001508/,movie,6.4,129,2009,"Comedy, Драма, Романтика ", 148405,2009-01-24, Кен Квапис tt0100405,6,2010-02-09, Pretty Woman, https://www.imdb.com/title/tt0100405/,movie,7.0,119,1990,"Comedy, Romance ", 256191,1990-03-23, Гарри Маршалл tt0100419,6,2010-03-21, Проблемный ребенок, https://www.imdb.com/title/tt0100419/,movie,5.3,81,1990,"Comedy, Семья ", 25671,1990-07-27, Деннис Дуган tt0100502,6,2010-06-18, RoboCop 2, https://www.imdb.com/title/tt0100502/,movie,5.8,117,1990,"Action, «Преступление, фантастика, триллер», 74631,1990-06-22, Ирвин Кершнер tt0100507,6,2010-02-24, Rocky V, https://www.imdb.com/title/tt0100507/,movie,5.2,104,1990,"Drama, Sport ", 113905,1990-11-13, John G. Avildsen

Я хочу разобрать его, используя openCSV для объекта Bean:

        CSVReader csvReader = new CSVReader(new FileReader(dbFile), ',', '"', 1);
    ColumnPositionMappingStrategy mappingStrategy =
            new ColumnPositionMappingStrategy();
    mappingStrategy.setType(Movie.class);
    String[] columns = new String[]{"id", "rating", "dateRated", "title", "url", "type",
            "imdbRating", "runtime", "year", "genres", "votes", "releaseDate", "directors"};
    mappingStrategy.setColumnMapping(columns);
    CsvToBean ctb = new CsvToBean();
    List list = ctb.parse(mappingStrategy, csvReader);

    for (Object object : list) {
        Movie movie = (Movie) object;
        System.out.println(movie)

В классе Bean есть все обязательные поля:

class Movie {
private String id;
private String rating;
private String dateRated;
private String title;
private String url;
private String type;
private String imdbRating;
private String runtime;
private String year;
private String genres;
private String votes;
private String releaseDate;
private String directors;

//getters and setters.

Но я получаю следующую ошибку:

java.lang.RuntimeException: java.lang.IllegalAccessException: класс com.opencsv.bean.AbstractMappingStrategy не может получить доступ к члену класса parse.Movie с модификаторами ""

Есть ли способ разобрать текст следующим образом:

«Преступление, драма, триллер»

как одна строка?

...