Этот класс выполняет функции запуска программы. Основные задачи:
- Загрузка данных о пользователях и континентах через HTTP-запросы.
- Преобразование полученных данных JSON в объекты классов
UserиContinent. - Вывод информации о загруженных объектах в консоль.
Ключевые методы и функционал:
- Использует метод
NetworkingMethods.getJsonInStringFrom()для получения JSON-строки с удалённых URL. - Преобразует JSON-строку в объекты
List<User>иList<Continent>с помощьюNetworkingMethods.parseUsersJSON()иNetworkingMethods.parseContinentsJSON(). - Обрабатывает возможные исключения
MalformedURLExceptionиIOException.
Пример использования:
- Получает пользователей с
https://fake-json-api.mock.beeceptor.com/users. - Получает континенты с
https://dummy-json.mock.beeceptor.com/continents.
Предоставляет вспомогательные методы для работы с сетевыми запросами и парсингом JSON.
Ключевые методы:
-
getJsonInStringFrom(URL url):
Загружает JSON-данные из указанного URL и возвращает их в виде строки. Использует потоковый ввод для чтения данных. -
parseUsersJSON(String userJSON):
Преобразует JSON-строку в список объектовUserс помощью библиотеки Gson. -
parseContinentsJSON(String userJSON):
Преобразует JSON-строку в список объектовContinent.
Особенности:
- Использует библиотеку Gson для сериализации и десериализации JSON.
- Оптимизирован для работы с типизированными коллекциями (
TypeToken<List<User>>иTypeToken<List<Continent>>).
Модель данных, описывающая пользователя. Содержит информацию о пользователе, включая его личные данные и контактные сведения.
Атрибуты:
id— идентификатор пользователя.name,username— имя и логин пользователя.company— компания, где работает пользователь.email,phone— контактные данные.address,zip,state,country— адрес проживания.
Методы:
- Геттеры и сеттеры для каждого атрибута.
- Переопределённый
toString(), выводящий отформатированную информацию о пользователе.
Модель данных, описывающая континент. Содержит общие характеристики и связанные с ним данные.
Атрибуты:
code,name— код и название континента.areaSqKm,population— площадь (км²) и население.lines— список строк, связанных с континентом (например, описание или исторические заметки).countries— количество стран.oceans— список океанов, омывающих континент.developedCountries— список развитых стран на этом континенте.
Методы:
- Геттеры и сеттеры для каждого атрибута.
- Переопределённый
toString(), выводящий отформатированную информацию о континенте.
- Gson: для работы с JSON.
- java.net.URL: для работы с URL.
- java.io: для чтения данных из сети.