作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要有关在 Java 中解析 CSV 数据时遇到的问题的建议。
我有一个 CSV 文件,其中包含以下格式的数据
name, gender, address_first_line, address_second_line, city, number
me, Male, anonymous, random, Auckland, 6545
other, Female, random, anon, Auckland, 6688
<小时/>
我想使用下面对象模型中的 openCSV 库来解析 CSV 文件。我知道解析单个类,但在涉及多个类时解析数据时遇到问题。请建议是否有任何其他可用的库可以帮助我获得所需的结果。
Class User {
String name;
String gender;
Address address;
long number;
}
Class Address {
String firstLine;
String secondLine;
}
最佳答案
univocity-parsers有一个可以使用的 @Nested
注释:
试试这个:
public static class User {
@Parsed
String name;
@Parsed
String gender;
@Nested
Address address;
@Parsed
long number;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", address=" + address +
", number=" + number +
'}';
}
}
public static class Address {
@Parsed(field = "address_first_line")
String firstLine;
@Parsed(field = "address_second_line")
String secondLine;
@Override
public String toString() {
return "Address{" +
"firstLine='" + firstLine + '\'' +
", secondLine='" + secondLine + '\'' +
'}';
}
}
public static void main(String ... args){
StringReader input = new StringReader(
"name,gender,address_first_line,address_second_line, city,number\n" +
"John,M,Somewhere,Else,City,1");
for(User user : new CsvRoutines().iterate(User.class, input)){
System.out.println(user.toString());
}
}
输出:
User{name='John', gender='M', address=Address{firstLine='Somewhere', secondLine='Else'}, number=1}
如果您不喜欢注释,您可以手动映射内容:
CsvRoutines routines = new CsvRoutines();
ColumnMapper mapper = routines.getColumnMapper();
mapper.attributeToColumnName("name", "name");
mapper.attributeToColumnName("gender", "gender");
mapper.attributeToColumnName("number", "number");
mapper.attributeToColumnName("address.firstLine", "address_first_line");
mapper.attributeToColumnName("address.secondLine", "address_second_line");
for (User user : routines.iterate(User.class, input)) {
System.out.println(user.toString());
}
希望有帮助。
免责声明:我是该库的作者。它是开源且免费的(Apache 2.0 许可证)
关于java - OpenCSV 扁平化到层次结构数据解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55260431/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!