Запись и чтение объектов Java в CSV, которые имеют списки в качестве атрибутов - PullRequest
1 голос
/ 10 апреля 2019

У меня есть List<Person>, который я хочу записать в CSV-файл и затем прочитать его снова.Моя проблема в том, что Person -класс имеет List<Insurance> -атрибут.Поэтому длина строки будет зависеть от того, сколько объектов содержится в List<Insurance> -атрибуте.A Person может иметь 0 или несколько страховок, и они хранятся в List в конкретном Person.Есть ли разумный способ сделать это?

Примерно так:

public class Person {
    private int insuranceNR;
    private String firstName;
    private String lastName;
    private List<Insurance> insurances;
}

Мне не удалось найти такие вопросы, как мой, но если есть, пожалуйста, перенаправьте меня.Спасибо.

1 Ответ

1 голос
/ 10 апреля 2019

CSV здесь не лучший выбор, поскольку предполагается, что он имеет фиксированное количество столбцов для эффективного анализа.Вы должны использовать json или xml.

Однако, если вы все еще хотите использовать CSV, вы должны убедиться, что в классе есть только 1 элемент списка (будущие изменения нарушат согласованность), и это тоже написано вконец строки.

что-то вроде этого

1, Bill, Gates, Ins1, Ins2, Ins3 
2, Donald, Trump 
3, Elon, Musk, Ins4 
4, Jeff, Bezos, Ins5, Ins6, Ins7, Ins8, Ins9

В вашем коде считайте только первые 3 элемента фиксированными и перебирайте оставшиеся соответственно.

Вотссылка на проблему, аналогичную вашей: Использование CsvBeanReader для чтения файла CSV с переменным числом столбцов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...