2012-01-20 37 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(); 
}