a study project while taking the Java programming course on skillbox.ru
Напишите программу, которая будет собирать данные из разных источников и записывать два JSON-файла. Парсинг разных данных должен происходить в разных классах. Имена классов и их методов придумайте самостоятельно. В программе должны быть следующие классы:
- Класс парсинга веб-страницы. В нём должно происходить (реализуйте каждую операцию в отдельных методах):
- получение HTML-кода страницы «Список станций Московского метрополитена» с помощью библиотеки jsoup;
- парсинг полученной страницы и получение из неё следующих данных (создайте для каждого типа данных отдельные классы):
- линии московского метро (имя и номер линии, цвет не нужен);
- станции московского метро (имя станции и номер линии).
-
Класс поиска файлов в папках. В методах этого класса необходимо реализовать обход папок, лежащих в архиве. Разархивируйте его и напишите код, который будет обходить все вложенные папки и искать в них файлы форматов JSON и CSV (с расширениями *.json и *.csv). Метод для обхода папок должен принимать путь до папки, в которой надо производить поиск.
-
Класс парсинга файлов формата JSON. Изучите структуру JSON-файлов, лежащих в папках, и создайте класс(ы) для хранения данных из этих файлов.
-
Напишите код, который будет принимать JSON-данные и выдавать список соответствующих им объектов.
-
Класс парсинга файлов формата CSV. Изучите структуру CSV-файлов, лежащих в папках, и создайте класс(ы) для хранения данных из этих файлов. Напишите код, который будет принимать CSV-данные и выдавать список соответствующих им объектов.
-
Класс, в который можно добавлять данные, полученные на предыдущих шагах, и который создаёт и записывает на диск два JSON-файла:
- со списком станций по линиям и списком линий (map.json);
- файл stations.json со свойствами станций в следующем формате:
{
"stations": [
{
"name": "Название станции",
"line": "Название линии",
"date": "Дата открытия в формате 19.01.2005",
"depth": "Глубина станции в виде числа",
"hasConnection": "Есть ли на станции переход"
},
…
]
}
Если каких-то свойств для станции нет, то в файле не должно быть соответствующих ключей.