将jsonObject转换为arraylist

时间:2017-08-28 13:52:45

标签: java json

我想找到一个解决方案,将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;

我的问题是我如何能得到他们任何帮助。谢谢你

2 个答案:

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