2012-01-20 36 views
0

我正在檢索一個JSON響應,除了一個部分外沒有任何問題。有些項目是嵌套一個JSONObjects:如何從嵌套的JSON響應中檢索信息?

{ 
"response": { 
    "venues": [ 
     { 
      "id": "42829c80f964a5205f221fe3", 
      "name": "AmericanExpressTower", 
      "contact": { 
       "phone": "2126405130", 
       "formattedPhone": "(212)640-5130", 
       "twitter": "americanexpress" 
      }, 
      "location": { 
       "address": "200VeseySt", 
       "crossStreet": "WestSt", 
       "lat": 40.713618978735, 
       "lng": -74.01408649911748, 
       "distance": 1926, 
       "postalCode": "10285", 
       "city": "NewYork", 
       "state": "NY", 
       "country": "UnitedStates" 
      } 
     } 
    ] 
} 

}

我怎樣才能像 「formattedPhone」 接觸對象訪問一個項目?

我可以訪問「名稱」每個項目的罰款:

JSONObject json = new JSONObject(result); 

JSONArray venues = json.getJSONObject("response") 
     .getJSONArray("venues"); 
input.close(); 
int vLength = venues.length(); 
StringBuilder builder = new StringBuilder(); 
for (int i = 0; i < vLength; i++) { 
    builder.append("Location: "); 
    builder.append(venues.getJSONObject(i) 
     .getString("name").toString());  
    builder.append("\n");   
} 
+0

我還要補充一點,這樣做:JSONObject contacts = new JSONObject(venues.getJSONObject(i).getString(「contact」));將拉動整個對象。 – Paul

+0

因此contacts.getString(「格式化的電話」)從上面? –

+0

我試過了,它說沒有格式化電話 – Paul

回答

0

這是我如何解決它,因爲接觸不會在某些情況下存在:

try { 
    JSONObject contacts = new JSONObject(venues.getJSONObject(i).getString("contact")); 
    builder.append("Phone: "); 
    builder.append(contacts.get("formattedPhone")); 
    builder.append("\n"); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
}