我正在处理我需要显示所有ATM的应用程序。我从谷歌api获取数据,但我无法获取所有数据。我想要抓取latitude
和longitude
但是当我获取数据时,我只获得一个值。
String url = "https://maps.googleapis.com/maps/api/place/radarsearch/json?location=23.308003,81.3275914&radius=5000&type=atm&key=AIzaSyCYZoSkxHC_Exym4YBWvXZXwMyJA7dzEB4";
try {
JSONObject jObject = new JSONObject(request(url));
String jj = jObject.getString("status");
JSONArray data = jObject.getJSONArray("results");
location = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
for(int i = 0; i < data.length(); i++){
JSONObject c = data.getJSONObject(i);
map = new HashMap<String, String>();
JSONObject geometry = c.getJSONObject("geometry");
JSONObject locate = geometry.getJSONObject("location");
String lat = locate.getString("lat");
String lng = locate.getString("lng");
Log.e("Data", lat+"--"+lng);
//map.put("LocationID", c.getString("id"));
//map.put("placeId",c.getString("place_id"));
//location.add(map);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:6)
我建议你去看一些解析教程。之后你可以让我们像gson或jackson这样的图书馆来解析你的json。现在很多人不会自己编写json解析代码。
一旦你理解了json结构,你就应该能够自己解析它。
你的json
"results": [ // array
{ // jsonobject
"geometry": { // geometry jsonobject
"location": { // location jsonobject
// values
"lat": 23.3085793,
"lng": 81.353116
}
},
... // the rest of the json
然后
// this is right
JSONArray data = jObject.getJSONArray("results");
之后
for(int i = 0; i < data.length(); i++){
JSONObject c = data.getJSONObject(i);
JSONObject geometry = c.getJSONObject("geometry");
JSONObject location = geometry.getJSONObject("location");
String lat = location.getString("lat");
String lng = location.getString("lng");
Log.d("Location->"," "+lat+" "+lng);
// now do what you want.
// You probably meant to do
map = new HashMap<String, String>();
map.put("lat",lat);
map.pt("lng",lng);
location.add(map);
}