Пример кода из файла(сначала идет описание города, потом идет описание станций в этом городе):
{
"citiesFrom" : [
{
"countryTitle" : "Австрия",
"point" : {
"longitude" : 16.36879539489746,
"latitude" : 48.20253753662109
},
"districtTitle" : "",
"cityId" : 2352,
"cityTitle" : "Вена",
"regionTitle" : "",
"stations" : [
{
"countryTitle" : "Австрия",
"point" : {
"longitude" : 16.36879539489746,
"latitude" : 48.20253753662109
},
"districtTitle" : "",
"cityId" : 2352,
"cityTitle" : "город Вена",
"regionTitle" : "",
"stationId" : 10154,
"stationTitle" : "International Busterminal, Edbergstarsse 200 A"
},
{
"countryTitle" : "Австрия",
"point" : {
"longitude" : 16.36879539489746,
"latitude" : 48.20253753662109
},
"districtTitle" : "",
"cityId" : 2352,
"cityTitle" : "город Вена",
"regionTitle" : "",
"stationId" : 9864,
"stationTitle" : "Stadion Center, Engerthstr. 242"
},
{
"countryTitle" : "Австрия",
"point" : {
"longitude" : 16.36879539489746,
"latitude" : 48.20253753662109
},
"districtTitle" : "",
"cityId" : 2352,
"cityTitle" : "город Вена",
"regionTitle" : "",
"stationId" : 9778,
"stationTitle" : "Stadion Center, Olympiaplatz 2"
},
{
"countryTitle" : "Австрия",
"point" : {
"longitude" : 16.36879539489746,
"latitude" : 48.20253753662109
},
"districtTitle" : "",
"cityId" : 2352,
"cityTitle" : "город Вена",
"regionTitle" : "",
"stationId" : 434,
"stationTitle" : "U-BHF ERDBERGSTR."
},
{
"countryTitle" : "Австрия",
"point" : {
"longitude" : 16.36879539489746,
"latitude" : 48.20253753662109
},
"districtTitle" : "",
"cityId" : 2352,
"cityTitle" : "город Вена",
"regionTitle" : "",
"stationId" : 874,
"stationTitle" : "Vienna"
}
]
}
]
}
Как верно подметили в комментариях, сложного в парсинге JSON-а ничего нет, и примеров на эту тему тоже достаточно. Вам нужно просто понять принцип, как работать с JSON-ом, и далее для вас не составит никакой трудности распарсить сколь угодно сложный JSON.
Лично я советую использовать библиотеку org.json, с ней работать гораздо проще, чем с GSON или некоторыми другими примерами. Но этот вопрос довольно субъективен.
Конкретно на вашем примере:
// Допустим, в этой строке у вас находится весь ваш JSON
// Как вы его туда поместите, это уже другой вопрос
// И, надеюсь, трудностей у вас с этим не будет
String jsonString = "";
// Парсим JSON
JSONObject json = new JSONObject(jsonString);
JSONArray citiesFrom = json.getJSONArray("citiesFrom");
JSONObject country = citiesFrom.getJSONObject(0);
String countryTitle = country.getString("countryTitle");
JSONArray stations = country.getJSONArray("stations");
JSONObject firstStation = stations.getJSONObject(0);
String firstStationTitle = firstStation.getString("stationTitle");
// International Busterminal, Edbergstarsse 200 A
// и так далее...
Если честно - странный JSON с кучей дублирования. Вы можете использовать тот же GSON для первичного парсинга данных, затем, если судить по приведенному примеру, я бы создал два POJO класса Cities и Station которые бы создавал и заполнял данными во время парсинга. Таким образом вы бы написали свой десериализатор из JSON в Java объекты.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники