Converting an CSV file to a JSON object in Java

前端 未结 9 1680
太阳男子
太阳男子 2020-12-05 21:47

Is there an open source java library to convert a CSV (or XLS) file to a JSON object?

I tried using json.cdl, but somehow it does not seem to work for large CSV stri

9条回答
  •  执笔经年
    2020-12-05 22:32

    Here is a class I generated to return JSONArray, not just to print to a file.

    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.dataformat.csv.CsvMapper;
    import com.fasterxml.jackson.dataformat.csv.CsvSchema;
    import org.json.simple.JSONArray;
    import org.json.simple.parser.JSONParser;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    
    import java.io.File;
    import java.util.List;
    import java.util.Map;
    
    
    public class CsvToJson {
    
    private static final Logger log = LoggerFactory.getLogger(UtilsFormat.class);
    private static CsvToJson instance;
    
    
    public static JSONArray convert(File input) throws Exception {
    
        JSONParser parser = new JSONParser();
        CsvSchema csvSchema = CsvSchema.builder().setUseHeader(true).build();
        CsvMapper csvMapper = new CsvMapper();
    
        // Read data from CSV file
        List readAll = csvMapper.readerFor(Map.class).with(csvSchema).readValues(input).readAll();
    
        ObjectMapper mapper = new ObjectMapper();
    
        JSONArray jsonObject = (JSONArray) parser.parse(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(readAll));
        System.out.print(jsonObject.toString());
    
        return new JSONArray();
    }
    }
    

提交回复
热议问题