使用Jackson库将CSV文件直接转换为JSON文件

我正在使用以下代码:

CsvSchema bootstrap = CsvSchema.emptySchema().withHeader();

ObjectMapper mapper = new CsvMapper();

File csvFile = new File("input.csv"); // or from String, URL etc

Object user = mapper.reader(?).withSchema(bootstrap).readValue(new File("data.csv"));

mapper.writeValue(new File("data.json"), user);

它在我的IDE中抛出错误,cannot find symbol method

withSchema(CsvSchema)但为什么呢?我已经使用了一些示例中的代码。

我不知道要写入什么,mapper.reader()因为我想转换任何CSV文件。

如何将任何CSV文件转换为JSON并将其保存到磁盘?

接下来做什么?例子

回答:

我认为,您应该使用它MappingIterator来解决问题。请参见以下示例:

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 JacksonProgram {

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);

}

}

有关更多信息和示例,请参见此页面:jackson-dataformat-csv。

以上是 使用Jackson库将CSV文件直接转换为JSON文件 的全部内容, 来源链接: utcz.com/qa/412385.html

回到顶部