在下面的代码中,我可以显示Google地方信息网址中第一个返回的JSON地名名称结果。我想要显示整个返回的地名列表,而不仅仅是第一个项目。这样做最简单的方法是什么?你能指点我一个教程,或者给出示例代码吗?
HttpGet get = new HttpGet(bcURL.toString());
HttpResponse r = client.execute(get);
int status = r.getStatusLine().getStatusCode();
if(status == 200){
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
json = new JSONObject(data);
JSONArray timeline = json.getJSONArray("results");
JSONObject lastport = timeline.getJSONObject(0);
return lastport;
}else{
Toast.makeText(NewGPS3.this, "oops", Toast.LENGTH_SHORT);
return null;
}
第JSONObject lastport = timeline.getJSONObject(0);
行显示第一个名称。我想显示一个列表,而不仅仅是第一个项目。
答案 0 :(得分:0)
for(int i = 0; i < timeline.size(); i++){
JSONObject lastport = timeline.getJSONObject(i);
//Save the item to a ArrayList and use that list for your ListAdapter.
googlePlaces.add(lastPort);
}
答案 1 :(得分:0)
您需要使用JSONArray对象才能获取数组。它应该是这样的:
JSONObject entireObject = new JSONObject("your JSON string here");
JSONObject mainObject = entireObject.getJSONObject("photos"); // main object in entire object
JSONArray arrayObject = mainObject.getJSONArray("photo"); // array object in the main object
然后你可以像其他任何一样迭代这个数组:
for (int i = 0; i < arrayObject.length(); i++) {
JSONObject photoData = arrayObject.getJSONObject(i);
String yourString = photoData.getString("id");
}
我从Pro Android Media获得了部分内容。本书中有一个非常好的JSON api调用示例。你也可以免费获得源代码。