JAVA:opencsv随机读取CSV单元格

时间:2016-10-11 22:28:59

标签: java json opencsv

我正在尝试将CS​​V转换为JSON并使用OpenCSV并尝试从CSV标头添加JSON的属性。为此,我将第一行从CSV提取到单独的数组中,然后处理剩余的CSV并将其添加到JSON。但它并没有以与CSV相同的顺序写入JSON。

例如:CSV

name,address,phone
john,palo alto, 999
michael, SFO, 4342

我得到的JSON是:

[
  {
    "address" : palo alto,
    "name" : john,
    "phone" : 999
  },
  {
    "address" : SFO,
    "name" : michael,
    "phone" : 4342
  },
  ......
  ......
]

这是我的java代码:

// Iterate through the rows.
    CSVReader reader = null;
    try {
        fr = new FileReader(csvFile);

        // create a new CSV reader
        reader = new CSVReader(fr, ',', '"', 0);

        // Read all rows at once
        List<String[]> allRows = reader.readAll();

        // store the header field from CSV to be used to define properties
        // like name, address, contact etc
        String[] header = allRows.get(0);

        // Read CSV line by line and use the string array as you want
        for (int j = 1; j < allRows.size(); j++) {

            String[] row = allRows.get(j);

            JSONObject cells = new JSONObject();

            int i = 0;
            for (; i < row.length; i++) {
                String cellValue = row[i];
                cells.put(header[i], cellValue);

            }               

            //write to JSON array
            json.put(cells);
        }


    } catch (FileNotFoundException e) {


    } catch (IOException e) {


    } catch (JSONException e) {


    } finally {
        try {
            reader.close();
            fr.close();
        } catch (IOException e) {

        }
    }

更新:    我正在使用javascript在表中的UI上显示JSON数据。 JSON数据作为响应返回。必须以特定的表顺序显示。

0 个答案:

没有答案