我正在比較兩個 json 物件,其中一個從 csv 檔案獲取請求和其他輸入——用于 csv 到 json 邏輯——以下代碼,
csv 檔案看起來像這樣 ---- csv 檔案看起來像這樣 -
sw product,sw product module,technology
Product 1,Module 1,REGULAR
Product 1,Module 2,SPRING CLOUD
Product 2,Module 1,REGULAR
Product 2,Module 3,REGULAR
爪哇代碼
package com.beandependencyinjection.configurationbeans.service;
public class ConvertCsvToJson {
public static void main(String[] args) {
String filesss = "C:\products\\swproduct.csv";
ConvertCsvToJson result = new ConvertCsvToJson();
System.out.println(result.CSVtoJSON(filesss));
}
public String CSVtoJSON(String output) {
String[] lines = output.split(",");
StringBuilder builder = new StringBuilder();
builder.append('[');
String[] headers = new String[0];
//CSV TO JSON
for (int i = 0; i < lines.length; i ) {
String[] values = lines[i].replaceAll(",", "").split("?");
if (i == 0) //INDEX LIST
{
headers = values;
} else {
builder.append('{');
for (int j = 0; j < values.length && j < headers.length; j ) {
String jsonvalue = "\"" headers[j] "\":\"" values[j] "\"";
if (j != values.length - 1) { //if not last value of values...
jsonvalue = ',';
}
builder.append(jsonvalue);
}
builder.append('}');
if (i != lines.length - 1) {
builder.append(',');
}
}
}
builder.append(']');
output = builder.toString();
return output;
}
}
但它不起作用 - 任何幫助表示贊賞
uj5u.com熱心網友回復:
您的實作看起來非常低級。相反,您可以這樣做并使用ObjectMapper該類。
Pattern pattern = Pattern.compile(",");
try (BufferedReader in = new BufferedReader(new FileReader(csvFile));) {
List < Product > products = in .lines().skip(1).map(line - > {
String[] fields = pattern.split(line);
return new Product(...use values in fields to create product...);
}).collect(Collectors.toList());
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.writeValue(System.out, products);
}
可在此處獲得更多詳細資訊
uj5u.com熱心網友回復:
您可以使用一些庫,而不是使用您自己的邏輯來決議 CSV 并將其轉換為 JSON。
對于讀取 CSV,您可以使用 opencsv,這為您提供了直接將 CSV 讀取到地圖的選項
Map<String, String> values = new CSVReaderHeaderAware(new FileReader("yourfile.csv")).readMap();
發布此資訊,您可以使用 Jackon 將地圖轉換為 JSON。
ObjectMapper objectMapper = new ObjectMapper();
mapper.writeValueAsString(map);
有許多不同的框架可用于讀取 CSV 檔案并將文本轉換為 JSON,您可以探索。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349620.html
上一篇:生成一系列日期時間日期
