【问题标题】:Generating CSV file from object in java从java中的对象生成CSV文件
【发布时间】:2016-11-13 15:51:18
【问题描述】:

此时我正在从对象生成 csv,但我被卡住了。我不知道如何为嵌套类生成 csv。例如我们有以下类:

@Getter
@Setter
public class Person {
  private int age;
  private Name name;
}

@Getter
@Setter
public class Name {
  private String firstName;
  private String lastName;
}

有很大的问题。实际上,我测试了一些库,例如 jackson 和 commons csv,但没有找到解决方案。主要问题是我不知道对象中有哪些字段并且必须动态准备标题。有没有允许该操作的简单方法或库?如有任何提示,我将不胜感激。

【问题讨论】:

  • 您是否有任何特殊原因要使用 CSV,例如JSON?
  • 有一些原因

标签: java csv


【解决方案1】:

如果你用谷歌搜索它,你可能已经得到了答案。 这里已经有答案了:Object to CSV

使用超级 csv :Using super csv to write in csv from object

【讨论】:

  • 实际上它不适用于嵌套类,仅适用于 pojos
  • Csvs 不适用于嵌套类。它们也可以用 excel 格式表示。嵌套类不能以这种格式表示。你必须使用普通的pojos。
【解决方案2】:

创建 csv 文件的目的是什么?您是否有必要保留类的嵌套?您是从 csv 文件重新构造对象吗?

如果您只对对象的数据感兴趣,请考虑将所有内容缩减为原始类型(或任何您有有意义的 toString() 的类),也就是扁平化您的层次结构。 年龄、姓名 ==> 年龄、名字、姓氏

您可以使用反射来动态获取层次结构。

输出必须是 csv 吗?您是否考虑过使用不同的格式来保留 JSON 或 XML 等层次结构?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 2015-11-14
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    相关资源
    最近更新 更多