/
AnatoliyMatveev
/
DZ-CSVtoJSON
Обзор
Документация
Войти
/
AnatoliyMatveev
/
DZ-CSVtoJSON
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Main.java
76 строк
3 KB
AnatoliyMatveev
Create: Employee.java, Main.java
23 июл 2026, 17:08
Верифицирован
23 июл 2026, 17:08
2364589
Код
Авторство
О чём код?
package ru.netology; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.opencsv.CSVReader; import com.opencsv.bean.ColumnPositionMappingStrategy; import com.opencsv.bean.CsvToBean; import com.opencsv.bean.CsvToBeanBuilder; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Type; import java.util.List; public class Main { private static List<Employee> parseCSV(String[] columnMapping, String fileName) { // try-with-resources автоматически закроет FileReader и CSVReader был вопрос на вебинаре по Мавен try (CSVReader csvReader = new CSVReader(new FileReader(fileName))) { // Создание стратегии // Указываем класс // Привязываем колонки к полям ColumnPositionMappingStrategy<Employee> strategy = new ColumnPositionMappingStrategy<>(); strategy.setType(Employee.class); strategy.setColumnMapping(columnMapping); // Сборка парсера с помощью билдера CsvToBean<Employee> csvToBean = new CsvToBeanBuilder<Employee>(csvReader) .withMappingStrategy(strategy) .build(); // возвращение списка сотрудников return csvToBean.parse(); } catch (IOException e) { e.printStackTrace(); return null; } } private static String listToJson(List<Employee> list) { // Создаем объект Gson с красивым форматированием (как в вебинаре) Gson gson = new GsonBuilder().setPrettyPrinting().create(); // определяем тип списка сотрудников для Gson Type listType = new TypeToken<List<Employee>>() {}.getType(); // преобразуем список в JSON строку return gson.toJson(list, listType); } private static void writeString(String json, String outputFileName) { try (FileWriter fileWriter = new FileWriter(outputFileName)) { // Запись JSON строки в файл fileWriter.write(json); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { String[] columnMapping = {"id", "firstName", "lastName", "country", "age"}; String fileName = "data.csv"; List<Employee> list = parseCSV(columnMapping, fileName); String json = listToJson(list); writeString(json, "data.json"); } }