我想在一个列表中解析纬度,在另一个列表中解析经度。 任何想法如何在android.i中实现这一点我在谷歌地图上画一条路线,所以我将需要lat和lng。
{
"userData": [
{
"Latitude": "28.597782",
"Longitude": "77.298256",
"IotName": "Bus7821",
"createdAt": "2016-06-10T09:23:07.244Z",
"updatedAt": "2016-06-10T09:23:07.244Z",
"id": "575a86fbaf4d65a333c1a1b6"
},
{
"Latitude": "28.598390",
"Longitude": "77.297952",
"IotName": "Bus7821",
"createdAt": "2016-06-10T09:24:04.265Z",
"updatedAt": "2016-06-10T09:24:04.265Z",
"id": "575a8734af4d65a333c1a1b7"
},
{
"Latitude": "28.598362",
"Longitude": "77.297866",
"IotName": "Bus7821",
"createdAt": "2016-06-10T09:25:03.522Z",
"updatedAt": "2016-06-10T09:25:03.522Z",
"id": "575a876faf4d65a333c1a1b8"
}
]
}
我的代码段
JSONObject parentObject = new JSONObject(buffer.toString());
routeMap = parentObject.getJSONArray("userData");
for (int i=0 ; i<routeMap.length();i++)
{
JSONObject routes = routeMap.getJSONObject(i);
// routeLatitude = routes.get("Latitude");
}
答案 0 :(得分:1)
Gson Library是最好的方法。 根据你的json对象创建一个类。
class UserData {
double Latitude
double Longitude;
String IotName;
Date createdAt;
Date updatedAt
String id;
}
现在,一行Gson代码将完成您的所有工作。
UserData[] allRoutes = new Gson().fromJson(jsonString, UserData[].class);
希望它会奏效。 :)
答案 1 :(得分:0)
试试这样:
routeMap = parentObject.getJSONArray("userData");
for (int i=0 ; i<routeMap.length();i++)
{
JSONObject routes = routeMap.getJSONObject(i);
routeLatitude = routes.getString("Latitude");
routeLongitude = routes.getString("Longitude");
listOne.add(routeLatitude);
listTwo.add(routeLongitude);
}
listOne和listTwo是你的两个数组列表。
答案 2 :(得分:0)
试试这个:
DatePickerDialog
更好的方法是创建一个像这样的POJO:
try {
List<String> lat = new ArrayList<>();
List<String> lon = new ArrayList<>();
JSONObject jsonObject = new JSONObject(yourJson);
JSONArray jsonArray = jsonObject.getJSONArray("userData");
for( int i=0;i<jsonArray.length();i++) {
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
String latitude = jsonObject1.getString("Latitude");
String longitude = jsonObject1.getString("Longitude");
lat.add(latitude);
lon.add(longitude);
}
System.out.print(lat + "" + lon);
} catch (Exception e) {
e.printStackTrace();
}
现在你可以这样做:
public class MyLocation
{
private String id;
private String updatedAt;
private String createdAt;
private String IotName;
private String Latitude;
private String Longitude;
//other getters and setters here
public String getLatitude ()
{
return Latitude;
}
public void setLatitude (String Latitude)
{
this.Latitude = Latitude;
}
public String getLongitude ()
{
return Longitude;
}
public void setLongitude (String Longitude)
{
this.Longitude = Longitude;
}
}
获得:
MyLocation ml = new MyLocation();
ml.setLatitude(latitude);
ml.setLongitude(longitude);