2012-06-30 2 views
0

Я пытаюсь прочитать результаты запроса JSON в Java, но частичный выход моего запроса JSON выглядит следующим образом:Как читать полученные данные JSON в Java?

"route_summary": { 
     "total_distance": 740, 
     "total_time": 86, 
     "start_point": "Marienstraße", 
     "end_point": "Feldbergstraße" 
    } 

Я хотел бы использовать стандартную библиотеку JSON для извлечения значений в total_distance , Однако я, кажется, только для того, чтобы получить «route_summary», делая это:

JSONObject json = null; 
json = readJsonFromUrl(request); 
json.get("route_summary"); 

Где

public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { 
     InputStream is = new URL(url).openStream(); 
     try { 
      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); 
      String jsonText = readAll(rd); 
      JSONObject json = new JSONObject(jsonText); 
      return json; 
     } finally { 
      is.close(); 
     } 
    } 

То, что я хочу получить «в» route_summary, любой ключ/наконечник было бы здорово !

+0

вы говорите, «в-отдела». Является ли строка json частью расширенного json-объекта? –

ответ

3

Вам необходимо получить route_summary, как вы уже это сделали, и с этого объекта вам необходимо получить total_distance. Это вернет вам route_summary.total_distance.

Пример кода:

JSONObject object = new JSONObject(s); 
    int totalDistance = object.getJSONObject("route_summary").getInt("total_distance"); 
+0

Действительно, спасибо :) Я просто понял это сам. – FireFox

+0

добро пожаловать! –

0

Я бы порекомендовал вам использовать библиотеку GSON. Вы можете создать класс, который будет представлять сообщение, а затем автоматически сопоставить JSON с объектом, вызывая функцию: gson.fromJson(message, YourMessageClass.class).getRoute_summary().

Вот пример такого подхода: https://sites.google.com/site/gson/gson-user-guide/#TOC-Object-Examples

+0

Почему вы рекомендуете использовать GSON? Улучшена ли производительность? (Кажется, у меня есть функциональные JSON querries, следовательно, не вижу разницы) – FireFox

Смежные вопросы