我从 Foursquare API 获得了一个位置(纬度/经度)附近的场地列表,我获得了一个 JSONObject,但我是一个菜鸟,我不知道如何才能获得响应列表名称,位置等等。
Foursquare 的 JSON 似乎与上一个版本相比有所变化,这就是我问它的原因。
我正在努力解决这个问题。
public void showVenues() {
// Objeto Conexion HTTP - Libreria AsyncHttpClient
AsyncHttpClient client = new AsyncHttpClient();
// Genero la conexion, mediante URL, Parameters, Listener(Json)
Log.i("FOURSQUAREQUERY", getFOURSQUAREQUERY());
client.get(getFOURSQUAREQUERY(), null, new JsonHttpResponseHandler() {
// Evento onSuccess disparado cuando se descarga
// correctamente la informacion
@Override
public void onSuccess(JSONObject data) {
try {
// js = new JSONObject(s);
Log.i("JSON", data.toString());
JSONArray venues = data.getJSONObject("response")
.getJSONArray("venues");
List<JSONObject> venue_names = new ArrayList<JSONObject>();
for (int i = 0; i < venues.length(); i++) {
JSONArray items = venues.optJSONObject(i).getJSONArray(
"name");
for (int j = 0; j < items.length(); j++) {
JSONObject tempObj = new JSONObject();
tempObj.put("name", items.optJSONObject(j)
.getJSONObject("venue").optString("name"));
tempObj.put(
"address",
items.optJSONObject(j)
.getJSONObject("venue")
.getJSONObject("location")
.optString("address"));
tempObj.put(
"distance",
items.optJSONObject(j)
.getJSONObject("venue")
.getJSONObject("location")
.optInt("distance"));
venue_names.add(tempObj);
Log.i("TEMPOBJECT", tempObj.toString());
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onFailure(Throwable arg0) {
}
});
};
谢谢