2012-06-30 2 views
0
내가 자바로 JSON 요청의 결과를 읽기 위해 노력하고

, 아직 내 JSON 요청의 부분 출력은 다음과 같습니다 : 나는 total_distance의 값을 추출하기 위해 표준 JSON 라이브러리를 사용하고자하는 결과 JSON 데이터를 Java로 읽는 방법?

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

. 내가 원하는 것은 '으로'얻을

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(); 
     } 
    } 

입니다

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

route_summary, 단서/끝이 좋은 것 : 그러나 나는 단지이 일을하여 'route_summary'를 얻을 수있을 것 같다 !

+0

"in-dept"라고 말합니다. 큰 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 라이브러리를 사용하는 것이 좋습니다. 메시지를 나타내는 클래스를 작성한 다음 function : gson.fromJson(message, YourMessageClass.class).getRoute_summary()을 호출하여 JSON을 오브젝트에 자동으로 맵핑 할 수 있습니다.

다음은 이러한 접근 방식의 예입니다. https://sites.google.com/site/gson/gson-user-guide/#TOC-Object-Examples

+0

왜 GSON을 사용 하시겠습니까? 성능이 더 좋습니까? (나는 기능적인 JSON 쿼리를 가지고있는 것처럼 보이므로 차이점을 보지 못한다) – FireFox

관련 문제