Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用SimpleFlatMapper将前缀为CSV的列别名到映射? 背景_Java_Csv_Simpleflatmapper - Fatal编程技术网

Java 如何使用SimpleFlatMapper将前缀为CSV的列别名到映射? 背景

Java 如何使用SimpleFlatMapper将前缀为CSV的列别名到映射? 背景,java,csv,simpleflatmapper,Java,Csv,Simpleflatmapper,使用SimpleFlatMapper sfm csv 6.0.3 示例CSV: 波乔 类项目{ 私有字符串名称; 私有字符串引用; 私有映射前缀字段; //…建设者、接受者等。 } 简化代码 前缀“pf.”是用石头砌成的,如果属性名为“pf”,则所有操作都有效: .addAlias只接受Stringparams,因此类似的内容不起作用: 让我走上了正确的轨道 addColumnProperty接受对象的变量。您可以传入一个重命名属性,该属性接受用于简单列重命名的字符串参数或函数重命名函数。

使用SimpleFlatMapper sfm csv 6.0.3

示例CSV: 波乔
类项目{
私有字符串名称;
私有字符串引用;
私有映射前缀字段;
//…建设者、接受者等。
}
简化代码 前缀“pf.”是用石头砌成的,如果属性名为“pf”,则所有操作都有效:

  • .addAlias
    只接受
    String
    params,因此类似的内容不起作用:
让我走上了正确的轨道

addColumnProperty
接受
对象的变量。您可以传入一个
重命名属性
,该属性接受用于简单列重命名的
字符串
参数或
函数重命名函数
。将它们放在一起,如下所示:

final CsvMapper mapper=CsvMapperFactory.newInstance()
.addAlias(“名称”、“项目名称”)
.addAlias(“参考号”;“参考号”)
.addColumnProperty(
column->column.getName().startsWith(“pf”),
新的重命名属性(columnName->columnName.replace(“pf.”,“prefixedFields_”))
.newMapper(项类);
|------|-------------|----------------|----------------|------------------|
| name | reference # | pf.first thing | pf.secondThing | pf.another.thing |
|======|=============|================|================|==================|
| foo  | eb2e23c0d6a | a value here   |                | another value    |
|------|-------------|----------------|----------------|------------------|
| bar  | 0a4bba4c1d0 | values         | all            | throughout       |
|------|-------------|----------------|----------------|------------------|
final CsvMapper<Item> mapper = CsvMapperFactory.newInstance()
    .addAlias("name", "itemName")
    .addAlias("reference #", "reference")
    .newMapper(Item.class);

return CsvParser.mapWith(mapper)
    .stream(file, items -> items.collect(List.collector()));
firstRowItem.getPrefixedFields() == ImmutableMap.of(
    "first thing", "a value here",
    "another.thing", "another value")

secondRowItem.getPrefixedFields() == ImmutableMap.of(
    "first thing", "values",
    "secondThing", "all",
    "another.thing", "throughout")
class Item {
    // ...
    private Map<String, String> pf;
    // ...
}
.addAlias("pf.", "prefixedFields")