1. 程式人生 > >讀取csv檔案轉化為Json

讀取csv檔案轉化為Json

注:scv檔案中,每行的每列之間預設是用逗號分隔的

package com.mdl.excel.csv;

import java.io.File;
import java.io.IOException;
import java.net.URL;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

public class CsvToJson {

    // public static String getJSONFromURL(URL url, String separator) throws
    // IOException {
    //
    // String csv = IOUtils.toString
(url); // return getJSON(csv, separator); // } public static String getJSONFromFile(String fileName, String separator) throws IOException { byte[] bytes = null; bytes = FileUtils.readFileToByteArray(new File(fileName)); String csv = new String(bytes, "GBK"); // System.out
.println(csv); return getJSON(csv, separator).replace("\r", "").replace("\n", "").replace("\b", "").replaceAll("\\s*", ""); } public static String getJSON(String content, String separator) { StringBuilder sb = new StringBuilder("[\n"); String csv = content; String csvValues[] = csv.split
("\n"); String header[] = csvValues[0].split(separator); for (int i = 1; i < csvValues.length; i++) { sb.append("\t").append("{").append("\n"); String tmp[] = csvValues[i].split(separator); for (int j = 0; j < tmp.length; j++) { sb.append("\t").append("\t\"").append(header[j].replaceAll("\\s*", "").replace("\"", "")).append("\":\"") .append(tmp[j].replaceAll("\\s*", "").replace("\"", "")).append("\""); if (j < tmp.length - 1) { sb.append(",\n"); } else { sb.append("\n"); } } if (i < csvValues.length - 1) { sb.append("\t},\n"); } else { sb.append("\t}\n"); } } sb.append("]"); return sb.toString(); } public static void main(String[] args) throws Exception { System.out.println(getJSONFromFile("C:/Users/mdl/Desktop/units/test.csv", "\\,")); } }