我试图找到一种解决方案,将纬度和液化天然气作为双倍
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;
我的问题是我怎样才能得到他们的帮助。
谢谢您需要将字符串地理定位转换为 JSONObject。
例如:
JSONObject geolocJsonObj = (JSONObject) geoloc;
在您可以访问 lat 之后:
geolocJsonObj.get("lat")
您可以创建一个地理位置类并将值推送到该类的 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));
}