converte direttamente il file CSV in un file JSON usando la libreria di Jackson

Sto usando il seguente codice:

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

Genera un errore nel mio IDE dicendo che cannot find symbol method withSchema(CsvSchema) ma perché? Ho usato il codice da alcuni esempi.

Non so cosa scrivere in mapper.reader() perché voglio convertire qualsiasi file CSV.
Come posso convertire qualsiasi file CSV in JSON e salvarlo sul disco?

Cosa fare dopo? Gli esempi

Penso che dovresti usare MappingIterator per risolvere il tuo problema. Vedi sotto l’esempio:

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

Vedi questa pagina: jackson-dataformat-csv per ulteriori informazioni ed esempi.