Konvertieren Sie die CSV-Datei mithilfe der Jackson-Bibliothek direkt in die JSON-Datei

Ich verwende folgenden Code:

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

Es wirft einen Fehler in meiner IDE, der sagt cannot find symbol method withSchema(CsvSchema) aber warum? Ich habe den Code von einigen Beispielen benutzt.

Ich weiß nicht, was ich in mapper.reader() schreiben mapper.reader() da ich irgendeine CSV-Datei konvertieren möchte.
Wie kann ich eine CSV-Datei in JSON konvertieren und auf der Festplatte speichern?

Was macht man als nächstes? Die Beispiele

Ich denke, Sie sollten MappingIterator , um Ihr Problem zu lösen. Siehe folgendes Beispiel:

 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> data = readObjectsFromCsv(input); writeAsJson(data, output); } public static List> readObjectsFromCsv(File file) throws IOException { CsvSchema bootstrap = CsvSchema.emptySchema().withHeader(); CsvMapper csvMapper = new CsvMapper(); MappingIterator> mappingIterator = csvMapper.reader(Map.class).with(bootstrap).readValues(file); return mappingIterator.readAll(); } public static void writeAsJson(List> data, File file) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(file, data); } } 

Siehe diese Seite: jackson-dataformat-csv für weitere Informationen und Beispiele.