Как получить конкретное значение JSON
у меня есть json файл
{
"stations": {
"11": [
"Савёловская",
"Петровский парк",
"ЦСКА",
"Хорошёвская",
"Шелепиха",
"Деловой центр",
"Народное Ополчение",
"Мнёвники"
],
"11A": [
"Каховская",
"Варшавская",
"Каширская"
],
"12": [
"Битцевский парк",
"Лесопарковая",
"Улица Старокачаловская",
"Улица Скобелевская",
"Бульвар адмирала Ушакова",
"Улица Горчакова",
"Бунинская Аллея"
],
там ещё много строк, поэтому решил эту небольшую часть показать.
мои подключённые библиотеки: json-simple и jsoup
по заданию мне нужно получить количество станций, а для этого их нужно достать
вот всё, что я пока смог сделать
JSONParser parser = new JSONParser();
JSONObject a = (JSONObject) parser.parse(new FileReader("C:\\Users\\Юзер\\java_basics\\LearnJsoup\\jsoup\\src\\jsoupMetro\\WriteJson\\test.json"));
Ответы (1 шт):
Автор решения: Vadik
→ Ссылка
Достаем весь объект "stations", далее достаем массив по номеру линии "11", далее достаем название станции по индексу 3:
JSONObject json = (JSONObject) parser.parse(...);
JSONObject stations = (JSONObject) json.get("stations");
JSONArray grayLine = (JSONArray) stations.get("11");
String myStation = (String) grayLine.get(3); // => "Хорошёвская"
Как просуммировать количество станций по всем линиям метро? Множество ключей всех линий метро можно получить так: stations.keySet(), и пройтись по всем ключам в цикле:
int count = 0;
for (Object key : stations.keySet()) {
JSONArray line = (JSONArray) stations.get(key);
count += line.size();
}
System.out.println(count); # => 18