将 jsonObject 转换为数组列表



我试图找到一种解决方案,将纬度和液化天然气作为双倍

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));
}

最新更新