Thursday 4 June 2020

CSV Iterator

package com.css; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.sql.*; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.json.simple.JSONObject; 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; import com.fasterxml.jackson.dataformat.csv.impl.CsvReader; public class JSONUtilities { static File csvFile = new File("d:\\sapient\\sample.csv"); static File jsonFile = new File("d:\\sapient\\sample.csv.json"); // JDBC driver name and database URL static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver"; static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:orcl"; // Database credentials static final String USER = "system"; public static void main(String[] args) throws Exception { convertCSVToJSON(csvFile); } public static void convertCSVToJSON(File csvFile) throws IOException { CsvSchema bootstrap = CsvSchema.emptySchema().withHeader().withoutEscapeChar(); CsvMapper csvMapper = new CsvMapper(); MappingIterator> mappingIterator = csvMapper.reader(Map.class).with(bootstrap).readValues(csvFile); while (mappingIterator.hasNext()) { @SuppressWarnings("rawtypes") Map row = mappingIterator.next(); // System.out.println("Column names: " +row.keySet()); @SuppressWarnings("rawtypes") Set headerRow = row.keySet(); // Set headerColumnSet = new HashSet<>(); ArrayList headerColumnSet = new ArrayList(); @SuppressWarnings("unchecked") Iterator headerColumns = headerRow.iterator(); while (headerColumns.hasNext()) { String value = headerColumns.next(); // System.out.println("value= " + value ); headerColumnSet.add(value); } @SuppressWarnings("unchecked") Collection collection = row.values(); Iterator columns = collection.iterator(); // while loop int columnNum = 0; while (columns.hasNext()) { String columnVal = columns.next(); String headerColumn = headerColumnSet.get(columnNum); System.out.println(headerColumn + ":" + columnVal); columnNum++; } } ObjectMapper mapper = new ObjectMapper(); mapper.writerWithDefaultPrettyPrinter().writeValue(jsonFile, mappingIterator); System.out.println("output JSON file has been created at " + jsonFile); } }