Android 如何从JSONARRAY内部的JSONOBJECT获取值?
我正在开发一个应用程序,在这个应用程序中我需要显示所有的自动取款机。我正在从GoogleAPI获取数据,但无法获取所有数据。我想获取Android 如何从JSONARRAY内部的JSONOBJECT获取值?,android,json,android-json,Android,Json,Android Json,我正在开发一个应用程序,在这个应用程序中我需要显示所有的自动取款机。我正在从GoogleAPI获取数据,但无法获取所有数据。我想获取纬度和经度,但当我获取数据时,我只获取一个值 String url = "https://maps.googleapis.com/maps/api/place/radarsearch/json?location=23.308003,81.3275914&radius=5000&type=atm&key=AIzaSyCYZoSkxHC_Exym
纬度
和经度
,但当我获取数据时,我只获取一个值
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();
}
stringurl=”https://maps.googleapis.com/maps/api/place/radarsearch/json?location=23.308003,81.3275914&radius=5000&type=atm&key=AIzaSyCYZoSkxHC_Exym4YBWvXZXwMyJA7dzEB4”;
试一试{
JSONObject jObject=新的JSONObject(请求(url));
字符串jj=jObject.getString(“状态”);
JSONArray data=jObject.getJSONArray(“结果”);
位置=新的ArrayList();
HashMap图;
对于(int i=0;i
我建议您学习一些语法分析教程。稍后,您可以使用诸如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
然后
之后
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);
}
for(int i=0;i”、“+lat+”+lng);
//现在做你想做的。
//你可能是有意的
map=新的HashMap();
地图放置(“lat”,lat);
pt地图(“液化天然气”,液化天然气);
位置。添加(地图);
}
您还没有将从Json获得的lat lon值放在location(HashMap)@user3810679中。我建议您阅读有关改装的信息,而GSON/JacksonI无法获取所有纬度和经度值。我得到的是单一的纬度和经度only@user3810679您将获得所有值<代码>Log.e(“位置->”、“”+lat+“”+lng)代码>将此添加到上面的循环中我使用了相同的东西,但我不知道如何获取所有纬度和经度value@user3810679如果您正在执行相同的操作,请向我们显示更新的代码。你对这些值什么都没做,你的hashmap也没用。请检查我的更新代码,是的,现在我没有使用hashmap。首先,我检查是否得到了所有的值
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);
}