@SeniorDmitry

Как получить конкретный параметр в JSON?

Добрый день! Есть исходник кот-й получает значение JSON (API контакта , получаем регионы рф). Пример, что выводится в консоль:
title
Чувашская
region_id
1160844
title
Чукотский АО
region_id
1160930
title
Ямало-Ненецкий  АО
region_id
1115658
title
Ярославская область

Что нужно изменить в коде ,чтобы получить только значения регионов ?

исходник
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.URL;
import java.net.URLConnection;

public class Main {
    public static void main(String[] args) throws Exception{
        getPage("http://api.vk.com/method/database.getRegions?&country_id=1");
    }

    static String getPage(String page_url) throws IOException {
        URL url = new URL(page_url);
        URLConnection urlConnection = url.openConnection();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

        StringBuilder lines = new StringBuilder();
        String line;
        if ( (line=bufferedReader.readLine()) != null){
            lines.append(line);
        }
        JsonReader reader = new JsonReader(new StringReader(line));
        handleObject(reader);
        return lines.toString();

    }

    private static void handleObject(JsonReader reader) throws IOException
    {
        reader.beginObject();
        while (reader.hasNext()) {
            JsonToken token = reader.peek(); 
            if (token.equals(JsonToken.BEGIN_ARRAY)) { 
                handleArray(reader);
            }
            else if (token.equals(JsonToken.END_OBJECT)) {
                reader.endObject();
                return;
            } else
                handleNonArrayToken(reader, token);
        }

    }

    public static void handleArray(JsonReader reader) throws IOException
    {
        reader.beginArray();
        while (true) {
            JsonToken token = reader.peek();
            if (token.equals(JsonToken.END_ARRAY)) {
                reader.endArray();
                break;
            } else if (token.equals(JsonToken.BEGIN_OBJECT)) {
                handleObject(reader);
            } else if (token.equals(JsonToken.END_OBJECT)) {
                reader.endObject();
            } else
                handleNonArrayToken(reader, token);
        }
    }

    public static void handleNonArrayToken(JsonReader reader, JsonToken token) throws IOException
    {
        if (token.equals(JsonToken.NAME))
            System.out.println(reader.nextName());
        else if (token.equals(JsonToken.STRING))
            System.out.println(reader.nextString());
        else if (token.equals(JsonToken.NUMBER))
            System.out.println(reader.nextDouble());
        else
            reader.skipValue();
    }

}
  • Вопрос задан
  • 478 просмотров
Пригласить эксперта
Ответы на вопрос 1
@SeniorDmitry Автор вопроса
Увы, но почему-то не сработало , может я что-то скриворучил (
9221574ebe544fab985a904faf7d2320.jpg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы