2014-05-12 6 views
2

나는이있는 JSON 파일을 구문 분석하기 위해 노력하고있어 내부 된 JSONObject를 구문 분석하는 방법 :는 JsonArray

{ 
"number": 123, 
"contract_name" : "London", 
"name": "station", 
"address": "address", 
"position": { 
"lat": 48.862993, 
"lng": 2.344294 
}, 
"banking": true, 
"bonus": false, 
"last_update": <timestamp> 
} 

이 내가하고 관리 한 것입니다 문제는에 관한

s.setName(stationJson.optString("name")); 
        s.setTimestamp(stationJson.optString("last_update")); 
        s.setNumber(stationJson.optInt("number")); 
        s.setBonus(stationJson.optInt("bonus")); 
        s.setBank(stationJson.optInt("banking")); 
        s.setPosition(stationJson.getJSONObject("position")); 
        s.setLatitude(stationJson.optDouble("lat")); 
        s.setLongitude(stationJson.optDouble("lng")); 

lng와 lat.

누구나 어떻게 해결할 수 있을지 생각해보십시오.

+0

입니다 정도로 구문 분석 서술적인 답변이 주어집니다. –

답변

3

아래 코드를 사용하십시오.

s.setName(stationJson.optString("name")); 
s.setTimestamp(stationJson.optString("last_update")); 
s.setNumber(stationJson.optInt("number")); 
s.setBonus(stationJson.optInt("bonus")); 
s.setBank(stationJson.optInt("banking")); 
JSONObject positionJson = stationJson.getJSONObject("position");  
s.setLatitude(positionJson.optDouble("lat")); 
s.setLongitude(positionJson.optDouble("lng")); 
+0

이것은 완벽하게 작동했습니다. – user3627763

0

로 당신 JSON 지정된 형식에

{ 
"number": 123, 
"contract_name" : "London", 
"name": "station", 
"address": "address", 
"position": { 
"lat": 48.862993, 
"lng": 2.344294 
}, 
"banking": true, 
"bonus": false, 
"last_update": <timestamp> 
} 

안녕 그래서 결국 당신의 코드에서 당신이 말할 수있는

String jsondata ="YOURS JSON DATA HERE";//ASSIGN OR LOAD YOURS JSON DATA HERE 
     try { 
      JSONObject initial=new JSONObject(jsondata); 

      int number=initial.getInt("number"); 
      String contract_name=initial.getString("contract_name"); 
      Log.d("contract_name", contract_name); 
      String name=initial.getString("name"); 
      Log.d("name", name); 
      String address=initial.getString("address"); 
      Log.d("address", address); 

      String lastUpdate=initial.getString("last_update"); 
      Log.d("lastUpdate", lastUpdate); 
      Boolean bonus=initial.getBoolean("bonus"); 
      Log.d("bonus", bonus+""); 
      Boolean banking=initial.getBoolean("banking"); 
      Log.d("banking", banking+""); 

      JSONObject another=initial.getJSONObject("position"); 
      Double lat=another.getDouble("lat"); 
      Log.d("lat", lat+""); 
      Double lng=another.getDouble("lng"); 
      Log.d("lng", lng+""); 

     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

을 다음과

s.setName(stationJson.optString("name")); 
s.setTimestamp(stationJson.optString("last_update")); 
s.setNumber(stationJson.optInt("number")); 
s.setBonus(stationJson.optInt("bonus")); 
s.setBank(stationJson.optInt("banking")); 
//make another object as "position"is another object 
JSONObject positionJson = stationJson.getJSONObject("position");  
s.setLatitude(positionJson.optDouble("lat")); 
s.setLongitude(positionJson.optDouble("lng")); 
+1

답변 해 주셔서 감사합니다. – user3627763