这是来自服务器的我的JSON对象:
"driverInfo": {
"rideTime": null,
"rideId": 1105,
"driverProfile": {
"userId": 9,
"firstname": "nawaraj",
"lastname": "shrestha",
"phone": "9841444444",
"email": null,
"location": {
"lat": 27.7131382,
"lng": 85.3255354
},
"vehicleType": "Taxi",
"vehicleNo": "4556",
"rating": 3.3,
"imageName": "NAbin25",
"driverId": 4
},
"destinationLocation": null,
"myLocation": {
"lat": 27.7131382,
"lng": 85.3255354
},
"otpCode": "7857",
"trackRideUrl": null,
"customerId": 1
}
这是我的java类
public class RideDetails implements Serializable{
@Nullable
private String rideTime;
private Integer rideId;
private DriverProfile driverProfile;
@Nullable
private LatLng destinationLocation;
@Nullable
private LatLng myLocation;
private String otpCode;
private String trackRideUrl;
private Integer customerId;
public Integer getRideId() {
return rideId;
}
public Integer getCustomerId() {
return customerId;
}
public void setCustomerId(Integer customerId) {
this.customerId = customerId;
}
public void setRideId(Integer rideId) {
this.rideId = rideId;
}
public DriverProfile getDriverProfile() {
return driverProfile;
}
public void setDriverProfile(DriverProfile driverProfile) {
this.driverProfile = driverProfile;
}
@Nullable
public LatLng getDestinationLocation() {
return destinationLocation;
}
public void setDestinationLocation(@Nullable LatLng destinationLocation) {
this.destinationLocation = destinationLocation;
}
@Nullable
public LatLng getMyLocation() {
return myLocation;
}
public void setMyLocation(@Nullable LatLng myLocation) {
this.myLocation = myLocation;
}
@Nullable
public String getRideTime() {
return rideTime;
}
public void setRideTime(@Nullable String rideTime) {
this.rideTime = rideTime;
}
public String getOtpCode() {
return otpCode;
}
public void setOtpCode(String otpCode) {
this.otpCode = otpCode;
}
public String getTrackRideUrl() {
return trackRideUrl;
}
public void setTrackRideUrl(String trackRideUrl) {
this.trackRideUrl = trackRideUrl;
}
}
要映射对象..我像这样使用Gson:
Gson gson = new Gson();
RideDetails rideDetails = gson.fromJson(jsonObject.toString(),RideDetails.class);
除LatLng
之外,JSON对象的所有细节都映射到Java类。
虽然LatLng
在服务器的JSON对象中有值。映射后,所有三个LatLng
:location
,destinationLocation
和myLocation
都有值{lat:0.0,lng:0.0}
。可能是什么问题?
答案 0 :(得分:0)
位置应该是DriverProfile对象的一部分。
答案 1 :(得分:0)
Google APIs中的LatLng
对象确实包含lat
和lng
参数。这意味着你的对象不会映射。
使用正确的参数创建自己的Location
对象,以确保正确的映射。或者确保json有latitude
和longitude
而不是lat
和lng
,因此它可以自动映射到LatLng
对象。
此外,层次结构错误。 myLocation
,destinationLocation
和location
应映射到DriverProfile
下。
答案 2 :(得分:0)
LatLng
类的字段latitude
和longitude
与您的服务器作为JSON的一部分发送的字段lat
和lng
不同。