[英]how to fetch value from JSONOBJECT inside JSONARRAY?
我正在研究需要显示所有ATM的应用程序。 我正在从Google 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();
}
我建议您阅读一些解析教程。 稍后,您可以使用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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.