【发布时间】:2015-08-19 09:12:41
【问题描述】:
我有一个充满数据的对象。 现在我想创建带有注释的类,它允许我创建具有指定列顺序的 CSV 文件或任何通用解决方案。 我的数据表示有点复杂,意味着它带有对象列表。
例如:
class User {
public String name;
public int age;
List<Relatives> relativeList;
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<Relatives> getRelativeList() {
return relativeList;
}
public void setRelativeList(List<Relatives> relativeList) {
this.relativeList = relativeList;
}
}
class Relatives {
public int id;
public String name;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setName(String name) {
this.name= name;
}
public String getName() {
return name;
}
}
我想用这个类的对象填充的数据创建 CSV 文件。
举例
User user = new User();
user.setName("Jackson");
user.setAge(32);
List<Relatives> relativeList = new ArrayList<Relatives>();
Relatives relatives = new Relatives();
relatives.setId(110);
relatives.setName("father");
relativeList.add(relatives);
relatives = new Relatives();
relatives.setId(111);
relativ.add(relatives);
relativeList.setName("mother");
user.setRelativeList(relativeList);
我想创建类似的 CSV 文本。
"name";"age";"relatives id1";"relatives name1","relatives id2";"relatives name2"
"Jackson";"30";"110";"father";"111";"mother"
如示例所述,如果我在 relativeList 中有 3 个元素,则应添加一个名为“relatives id3”和“relatives name3”的列。其中元素+子元素表示亲属+(id或name)。 除此之外,我想确定生成的 CSV 中列的顺序意味着 age 可以作为 name。
这个问题的确切解决方案可能并不容易获得,但任何附近的解决方案都非常感谢并且会有所帮助。
【问题讨论】:
标签: java csv annotations jackson opencsv