gpt4 book ai didi

java - 在 Java Spring Boot 中将 CSV 转换为 JSON 数组

转载 作者:行者123 更新时间:2023-12-01 19:30:16 24 4
gpt4 key购买 nike

您好,我正在尝试使用名为 csvReader 的依赖项将 CSV 文件转换为 JSON 数组,但是当我运行代码时,它会错误地打印出 JSON 响应,我很确定为什么有人能够指出我的正确方向方向。

    @GetMapping("/convert")
public List<List<String>> convertCSV() throws FileNotFoundException {
List<List<String>> records = new ArrayList<List<String>>();
try (CSVReader csvReader = new CSVReader(new FileReader("C:/Download/cities.csv"));) {
String[] values = null;

while ((values = csvReader.readNext()) != null) {
records.add(Arrays.asList(values));
}

} catch (IOException e) {
e.printStackTrace();
}
return values;
}
enter image description here

最佳答案

这是因为您读取了字符串中的数据并打印了字符串列表。如果您想将 CSV 映射到对象( JSON 对象),您需要将 CSV 读取为 bean 对象,请找到下面的代码片段以 JSON 格式打印,重写 toString 方法作为 JSON 格式。

用户.java

public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NotNull
private String name;

@NotNull
private String surname;

//Getter and Setters
}

CsvReaderUtil.java

public static List<User> readCsvFile() throws IOException {
List<User> list = null;
CSVReader reader = null;
InputStream is = null;
try {
File initialFile = new File("C:\\Users\\ER\\Desktop\\test.csv");
is = new FileInputStream(initialFile);
reader = new CSVReader(new InputStreamReader(is), ',', '"', 1);
ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
strat.setType(User.class);
String[] columns = new String[]{"id", "name", "surname"};
strat.setColumnMapping(columns);
CsvToBean csv = new CsvToBean();
list = csv.parse(strat, reader);
} catch (Exception e) {
e.printStackTrace();
} finally {
is.close();
reader.close();
}
return list;
}

现在将此用户列表打印为 JSON 对象。

关于java - 在 Java Spring Boot 中将 CSV 转换为 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59964967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com