Java , Csv to json , jackson-dataformat-csv



我是Java中的新手,我想将CSV文件转换为JSON

我使用以下代码示例将CSV文件转换为JSON文件,事实是,我在" withschema(bootstrap((上遇到了一个错误:"(csvschema(的方法对类型的objectReader不确定"。 而且我不知道如何修复它,我将Maven依赖性更改为2.9.0版,使用CSVSchema(bootstap(尝试使用withtype(bootstrap(,但仍然无法正常工作。

谢谢

这是代码:

package CsvData;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
public class csvjson {
    public static void main(String[] args) throws Exception {
        File input = new File("/x/data.csv");
        File output = new File("/x/data.json");
        List<Map<?, ?>> data = readObjectsFromCsv(input);
        writeAsJson(data, output);
    }
    public static List<Map<?, ?>> readObjectsFromCsv(File file) throws IOException {
        CsvSchema bootstrap = CsvSchema.emptySchema().withHeader();
        CsvMapper csvMapper = new CsvMapper();
        MappingIterator<Map<?, ?>> mappingIterator = csvMapper.reader(Map.class).with(bootstrap).readValues(file);
        return mappingIterator.readAll();
    }
    public static void writeAsJson(List<Map<?, ?>> data, File file) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        mapper.writeValue(file, data);
    }
}

我尝试了2.2.1版,对我来说很好。

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-csv</artifactId>
<version>2.2.1</version>

这是Java方法

public static List<Map<?, ?>> readObjectsFromCsv(File file) throws IOException {
    CsvSchema bootstrap = CsvSchema.emptySchema().withHeader();
    CsvMapper csvMapper = new CsvMapper();
    MappingIterator<Map<?, ?>> mappingIterator = csvMapper.reader(Map.class).with(bootstrap).readValues(file);
    return  mappingIterator.readAll();
}

甚至文档也说起来是自2.2以来起作用的

正确的方法名称是用Schema

csvMapper.reader(Map.class).withSchema(bootstrap).readValues(file);

最新更新