/
geriot
/
json
Обзор
Документация
Войти
/
geriot
/
json
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/CsvToJsonConverter.java
78 строк
3 KB
geriot
upload files
10 май 2025, 09:56
10 май 2025, 09:56
74c4a44
Код
Авторство
О чём код?
import com.opencsv.CSVReader; import com.opencsv.bean.ColumnPositionMappingStrategy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.opencsv.bean.CsvToBean; import com.opencsv.bean.CsvToBeanBuilder; import java.io.*; import java.lang.reflect.Type; import java.nio.file.Path; import java.util.List; import static java.nio.file.Files.writeString; public class CsvToJsonConverter { public static void main(String[] args) { try { // Настройка отображения колонок String[] columnMapping = {"id", "firstName", "lastName", "country", "age"}; String fileName = "data.csv"; // Получение списка сотрудников из CSV List<Employee> list = parseCSV(columnMapping, fileName); // Преобразование списка в JSON String json = listToJson(list); // Запись JSON в файл writeString(json, "data.json"); System.out.println("Файл data.json успешно создан!"); } catch (Exception e) { System.err.println("Ошибка: " + e.getMessage()); e.printStackTrace(); } } /** * Парсинг CSV файла в список объектов Employee */ public static List<Employee> parseCSV(String[] columnMapping, String fileName) throws Exception { // Создание стратегии отображения колонок ColumnPositionMappingStrategy<Employee> strategy = new ColumnPositionMappingStrategy<>(); strategy.setType(Employee.class); strategy.setColumnMapping(columnMapping); // Чтение файла и преобразование в список сотрудников try (CSVReader csvReader = new CSVReader(new FileReader(fileName))) { CsvToBean<Employee> csvToBean = new CsvToBeanBuilder<Employee>(csvReader) .withType(strategy.getType()) .withMappingStrategy(strategy) .build(); return csvToBean.parse(); } } public static String listToJson(List<Employee> list) { // Создание Gson-объекта с форматированием Gson gson = new GsonBuilder() .setPrettyPrinting() .create(); // Получение типа списка Type listType = new TypeToken<List<Employee>>() {}.getType(); return gson.toJson(list, listType); } /** * Запись JSON строки в файл */ public static void writeString(String content, String fileName) throws IOException { try (FileWriter writer = new FileWriter(fileName)) { writer.write(content); } } }