Java Jackson CSV';s将_包装为_数组

Java Jackson CSV';s将_包装为_数组,java,csv,jackson,Java,Csv,Jackson,根据,WRAP\u AS\u ARRAY是: 确定记录流(通常为CSV行,但有时在引用值中包含换行符时为多行)如何公开的功能:作为对象序列(false)或对象数组(true) “对象序列”和“对象数组”之间有什么区别?对我来说,描述似乎是一样的。解析一系列对象:调用readValues()并获得一个MappingIterator,它将逐个为您提供对象。相当于包含多个JSON对象的输入,一个接一个 解析对象数组:调用readValue()并获取对象列表。相当于包含JSON数组的输入 示例: @Te

根据,
WRAP\u AS\u ARRAY
是:

确定记录流(通常为CSV行,但有时在引用值中包含换行符时为多行)如何公开的功能:作为对象序列(false)或对象数组(true)


“对象序列”和“对象数组”之间有什么区别?对我来说,描述似乎是一样的。

解析一系列对象:调用readValues()并获得一个MappingIterator,它将逐个为您提供对象。相当于包含多个JSON对象的输入,一个接一个

解析对象数组:调用readValue()并获取对象列表。相当于包含JSON数组的输入

示例:

@Test
public void parses_csv_to_object_list() throws Exception {
    String csv = "id,name\n1,Red\n2,Green\n3,Blue";
    CsvMapper mapper = new CsvMapper();
    CsvSchema schema = mapper.schemaFor(ColourData.class).withHeader();
    ObjectReader reader = mapper.readerFor(ColourData.class).with(schema);
    try (MappingIterator<ColourData> iter = reader.readValues(csv)) {
        assertThat(iter.readAll(),
                contains(new ColourData(1, "Red"), new ColourData(2, "Green"), new ColourData(3, "Blue")));
    }
}

@Test
public void parses_csv_to_object_list_in_one_read() throws Exception {
    String csv = "id,name\n1,Red\n2,Green\n3,Blue";
    CsvMapper mapper = new CsvMapper().enable(CsvParser.Feature.WRAP_AS_ARRAY);
    CsvSchema schema = mapper.schemaFor(ColourData.class).withHeader();
    ObjectReader reader = mapper.readerFor(new TypeReference<List<ColourData>>() {
    }).with(schema);
    assertThat(reader.readValue(csv),
            contains(new ColourData(1, "Red"), new ColourData(2, "Green"), new ColourData(3, "Blue")));
}
@测试
public void解析_csv_到_object_list()引发异常{
String csv=“id,name\n1,红色\n2,绿色\n3,蓝色”;
CsvMapper映射器=新的CsvMapper();
CsvSchema schema=mapper.schemaFor(colordata.class).withHeader();
ObjectReader=mapper.reader for(colordata.class).with(schema);
try(MappingIterator iter=reader.readValues(csv)){
断言(iter.readAll(),
包含(新颜色数据(1,“红色”)、新颜色数据(2,“绿色”)、新颜色数据(3,“蓝色”));
}
}
@试验
public void在\u one\u read()中解析\u csv\u到\u object\u list\u抛出异常{
String csv=“id,name\n1,红色\n2,绿色\n3,蓝色”;
CsvMapper mapper=new CsvMapper().enable(CsvParser.Feature.WRAP_AS_数组);
CsvSchema schema=mapper.schemaFor(colordata.class).withHeader();
ObjectReader=mapper.reader(新类型引用(){
}).带有(模式);
资产(reader.readValue(csv),
包含(新颜色数据(1,“红色”)、新颜色数据(2,“绿色”)、新颜色数据(3,“蓝色”));
}

解析一系列对象:调用readValues()并获得一个MappingIterator,它将逐个为您提供对象。相当于包含多个JSON对象的输入,一个接一个

解析对象数组:调用readValue()并获取对象列表。相当于包含JSON数组的输入

示例:

@Test
public void parses_csv_to_object_list() throws Exception {
    String csv = "id,name\n1,Red\n2,Green\n3,Blue";
    CsvMapper mapper = new CsvMapper();
    CsvSchema schema = mapper.schemaFor(ColourData.class).withHeader();
    ObjectReader reader = mapper.readerFor(ColourData.class).with(schema);
    try (MappingIterator<ColourData> iter = reader.readValues(csv)) {
        assertThat(iter.readAll(),
                contains(new ColourData(1, "Red"), new ColourData(2, "Green"), new ColourData(3, "Blue")));
    }
}

@Test
public void parses_csv_to_object_list_in_one_read() throws Exception {
    String csv = "id,name\n1,Red\n2,Green\n3,Blue";
    CsvMapper mapper = new CsvMapper().enable(CsvParser.Feature.WRAP_AS_ARRAY);
    CsvSchema schema = mapper.schemaFor(ColourData.class).withHeader();
    ObjectReader reader = mapper.readerFor(new TypeReference<List<ColourData>>() {
    }).with(schema);
    assertThat(reader.readValue(csv),
            contains(new ColourData(1, "Red"), new ColourData(2, "Green"), new ColourData(3, "Blue")));
}
@测试
public void解析_csv_到_object_list()引发异常{
String csv=“id,name\n1,红色\n2,绿色\n3,蓝色”;
CsvMapper映射器=新的CsvMapper();
CsvSchema schema=mapper.schemaFor(colordata.class).withHeader();
ObjectReader=mapper.reader for(colordata.class).with(schema);
try(MappingIterator iter=reader.readValues(csv)){
断言(iter.readAll(),
包含(新颜色数据(1,“红色”)、新颜色数据(2,“绿色”)、新颜色数据(3,“蓝色”));
}
}
@试验
public void在\u one\u read()中解析\u csv\u到\u object\u list\u抛出异常{
String csv=“id,name\n1,红色\n2,绿色\n3,蓝色”;
CsvMapper mapper=new CsvMapper().enable(CsvParser.Feature.WRAP_AS_数组);
CsvSchema schema=mapper.schemaFor(colordata.class).withHeader();
ObjectReader=mapper.reader(新类型引用(){
}).带有(模式);
资产(reader.readValue(csv),
包含(新颜色数据(1,“红色”)、新颜色数据(2,“绿色”)、新颜色数据(3,“蓝色”));
}