Parse csv data and convert to nested json java

后端 未结 1 960
没有蜡笔的小新
没有蜡笔的小新 2020-12-18 16:34

I\'m searching for simplest way or any jar available to read csv file in java and convert to into nested json. I tried searching for various sources, but all the places i co

相关标签:
1条回答
  • 2020-12-18 17:05

    You can use JackSon to convert CSV to JSON. For example see the following code:

    import java.io.File;
    import java.util.List;
    import java.util.Map;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.dataformat.csv.CsvMapper;
    import com.fasterxml.jackson.dataformat.csv.CsvSchema;
    
    public class CSV2JSON {
    
        public static void main(String[] args) throws Exception {
            File input = new File("input.csv");
            File output = new File("output.json");
    
            CsvSchema csvSchema = CsvSchema.builder().setUseHeader(true).build();
            CsvMapper csvMapper = new CsvMapper();
    
            // Read data from CSV file
            List<object> readAll = csvMapper.readerFor(Map.class).with(csvSchema).readValues(input).readAll();
    
            ObjectMapper mapper = new ObjectMapper();
    
            // Write JSON formated data to output.json file
            mapper.writerWithDefaultPrettyPrinter().writeValue(output, readAll);
    
            // Write JSON formated data to stdout
            System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(readAll));
        }
    }
    

    If you are using maven you can add the Jackson dependency as following:

       <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-databind</artifactId>
         <version>2.8.9</version>
       </dependency>
       <dependency>
         <groupId>com.fasterxml.jackson.dataformat</groupId>
         <artifactId>jackson-dataformat-csv</artifactId>
         <version>2.8.9</version>
       </dependency> 
    
    0 讨论(0)
提交回复
热议问题