как получить переходы между станциями московского метро
сейчас я получаю только станции и линии. мне ещё нужно получить переходы между станциями в дополнение к линиям и станциям (коллекции имя станции, номер линии, между которым есть переходы). и вывести в консоль количество переходов в метро. помогите!
public class Metro { public static void main(String[] args) {
try (FileWriter file = new FileWriter("C:\\Users\\Юзер\\java_basics\\LearnJsoup\\jsoup\\src\\jsoupMetro\\WriteJson\\test.json")) {
Document doc = Jsoup.connect("https://www.moscowmap.ru/metro.html#lines").maxBodySize(0).get();
JSONArray lines = new JSONArray();
Elements namesOfLines = doc.getElementsByClass("js-metro-line");
namesOfLines.forEach(element -> {
JSONObject line = new JSONObject();
line.put("name", element.text());
line.put("number", element.attr("data-line"));
lines.add(line);
});
JSONObject stations = new JSONObject();
Elements namesOfStations = doc.getElementsByClass("js-metro-stations");
namesOfStations.forEach(el -> {
el.children().forEach(element -> {
if (stations.containsKey(el.attr("data-line"))) {
JSONArray stationsOnLine = (JSONArray) stations.get(el.attr("data-line"));
stationsOnLine.add(element.getElementsByClass("name").text());
} else {
JSONArray stationsArray = new JSONArray();
stationsArray.add(element.getElementsByClass("name").text());
stations.put(el.attr("data-line"), stationsArray);
}
});
});
JSONObject metro = new JSONObject();
metro.put("stations", stations);
metro.put("lines", lines);
file.write(metro.toJSONString());
} catch (Exception e) {
e.printStackTrace();
}
сейчас у меня json записывается вот так
{
"stations": {
"11": [
"Савёловская",
"Петровский парк",
"ЦСКА",
"Хорошёвская",
"Шелепиха",
"Деловой центр",
"Народное Ополчение",
"Мнёвники"
],
"11A": [
"Каховская",
"Варшавская",
"Каширская"
],
"12": [
"Битцевский парк",
"Лесопарковая",
"Улица Старокачаловская",
"Улица Скобелевская",
"Бульвар адмирала Ушакова",
"Улица Горчакова",
"Бунинская Аллея"
],
"14": [
"Окружная",
"Владыкино",
"Ботанический Сад",
"Ростокино",
"Белокаменная",
"Бульвар Рокоссовского",
"Локомотив",
"Измайлово",
"Соколиная Гора",
"Шоссе Энтузиастов",
"Андроновка",
"Нижегородская",
"Новохохловская",
"Угрешская",
"Дубровка",
"Автозаводская",
"ЗИЛ",
"Верхние Котлы",
"Крымская",
"Площадь Гагарина",
"Лужники",
"Кутузовская",
"Деловой центр",
"Шелепиха",
"Хорошёво",
"Зорге",
"Панфиловская",
"Стрешнево",
"Балтийская",
"Коптево",
"Лихоборы"
],
там ещё 400 строк, поэтому не всё показываю