java - 将具有列表作为属性的 Java 对象写入和读取到 CSV

标签 java list csv

我有一个List<Person>我想写入一个 CSV 文件,然后再次读取它。我的问题是 Person -类有一个List<Insurance> -属性。因此,行的长度将取决于 List<Insurance> 中有多少对象。 -属性。一个Person可以有 0 个或多个保险,这些保险存储在 List 中具体Person 。有没有合理的方法来做到这一点?

像这样:

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

我没有找到像我这样的问题,但如果有,请重定向我。谢谢。

最佳答案

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 个元素视为固定元素,并相应地迭代剩余元素。

这里是与您类似的问题的引用: Using CsvBeanReader to read a CSV file with a variable number of columns

关于java - 将具有列表作为属性的 Java 对象写入和读取到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55609990/

相关文章:

c# - 如何将空小数插入数据表?

python - 将 CSV 列转换为列表

java - 更新 Cucumber 功能并在 Jira 中的 Xray 上测试执行结果

c - 删除链接列表中先前的重复条目

C# Linq SQL 选择要列出的多列

java - 如何获得两个列表的笛卡尔积?

javascript - 读取服务器端 CSV 文件

java - 在 Android 中使用 ArrayList 填充 Spinner

java - 无法连接到MySql

java - 从接口(interface)调用属性与静态类调用属性有什么区别