我正在尝试将CSV转换为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数据作为响应返回。必须以特定的表顺序显示。