我想找到一个解决方案,将lat和lng作为双重
JSONArray arr = jsonObject.getJSONArray("hits");
for (int i = 0; i < arr.length(); i++)
{
String geoloc = arr.getJSONObject(i).getString("_geoloc");
Log.d("geoloc"," : " + geoloc);
}
所以我得到的是:geoloc: : {"lat":33.84878,"lng":-5.481698}
我想要的是这样的:
double lat = 33.84878;
double lng = -5.481698;
我的问题是我如何能得到他们任何帮助。谢谢你
答案 0 :(得分:0)
您需要将String geoloc转换为JSONObject。
例如:
JSONObject geolocJsonObj = (JSONObject) geoloc;
您可以访问lat:
geolocJsonObj.get("lat")
答案 1 :(得分:0)
您可以创建一个GeoLocation类并将值推送到其中的ArrayList:
class GeoLocation {
private double lat;
private double long;
GeoLocation(double nLat, double nLong) { this.lat = nLat, this.long = nLong }
// ... Getter and Setter methods
}
您可以使用parseDouble从json对象中提取双值,如下所示:
JSONArray arr = jsonObject.getJSONArray("hits");
List<GeoLocation> aGeoLocationList = new ArrayList<GeoLocation>();
for (int i = 0; i < arr.length(); i++)
{
double latVal = Double.parseDouble(arr.getJSONObject(i).getString("lat"));
double longVal = Double.parseDouble(arr.getJSONObject(i).getString("long"));
aGeoLocationList.add(new GeoLocation(latVal, longVal));
}