OpenCSV:将嵌套的Bean映射到CSV文件

时间:2019-12-07 13:41:08

标签: java spring javabeans opencsv

我正在尝试将一个bean映射到CSV文件,但是问题是我的bean具有其他嵌套bean作为属性。发生的事情是OpenCSV遍历属性找到一个bean,然后将其放入并映射该bean内部的所有数据,如果找到另一个bean,它将继续运行。如何使用OpenCSV处理嵌套的bean?如何确保它能从嵌套bean映射正确的属性?

1 个答案:

答案 0 :(得分:1)

在OpenCSV 5.0中,我们可以使用view.post(new Runnable() { @Override public void run() { String html = "<!DOCTYPE HTML>\n" + "<html>\n" + "<head>\n" + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n" + "<title>APP</title>\n" + "</head>\n" + "<body style=\"background:#e11020;font-family:Arial,Helvetica;\">\n" + "<h1 style=\"color:rgba(255,255,255,0.9);text-align:center;padding:120px 20px 20px 20px;font-size:30px;\">No Internet connection</h1>\n" + "</body>\n" + "</html>"; view.loadDataWithBaseURL(null, html, "text/html", "UTF-8", null); } }); 批注来映射嵌套的bean,而无需使用MappingStrategy。

  

将映射从输入/输出列拆分到成员的能力   多个嵌入式Bean的变量已通过   注释@CsvRecurse。仍然需要一个根豆。

csv文件

@CsvRecurse

根豆

id,cardNumber,holder
1,1234567 890,abc

巢豆

public class DataSet {

    @CsvBindByName
    private String id;

    @CsvRecurse
    private MyNumber myNumber;

    //getter and setter
}

读豆子

public class MyNumber {

    @CsvBindByName
    private String cardNumber;

    @CsvBindByName
    private String holder;

    // getter and setter
}

参考:http://opencsv.sourceforge.net/#multivaluedmap_based_bean_fields_many_to_one_mappings

相关问题