在 Android 中,在列表中显示 Google Places JSON 数据?
Posted
技术标签:
【中文标题】在 Android 中,在列表中显示 Google Places JSON 数据?【英文标题】:In Android, display Google Places JSON data in a list? 【发布时间】:2012-07-23 16:47:13 【问题描述】:在下面的代码中,我可以显示从我的 Google Places URL 中返回的第一个 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);
行显示名字。我想显示一个列表,而不仅仅是第一项。
【问题讨论】:
【参考方案1】:您将需要使用 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 调用示例。您也可以免费获得源代码。
http://www.amazon.com/Pro-Android-Media-Developing-Smartphones/dp/1430232676/ref=sr_1_1?ie=UTF8&qid=1343062690&sr=8-1&keywords=android+media
【讨论】:
【参考方案2】: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);
【讨论】:
以上是关于在 Android 中,在列表中显示 Google Places JSON 数据?的主要内容,如果未能解决你的问题,请参考以下文章
Android:在App Purchased list queryInventoryAsync中,Google返回错误的购买列表
在列表适配器中膨胀类 com.google.android.youtube.player.YouTubePlayerView 时出错