我正在使用回收器视图在我的应用程序上显示数据。当我想从我正在使用的 API 中获取信息时,我将接收 14 个不同的变量。
for(int i = 0; i<array.length();i++){
JSONObject object = array.getJSONObject(i);
//object.getJSONObject("test");
Personnel personnel = new Personnel(
object.getInt("contactType"),
object.getString("currentTime"),
object.getString("clockIn"),
object.getString("clockOut"),
object.getInt("isClockedIn"),
object.getString("clockInPhotoName"),
object.getDouble("clockInLat"),
object.getDouble("clockInLng"),
object.getDouble("clockOutLat"),
object.getDouble("clockOutLng"),
object.getDouble("projectSiteLat"),
object.getDouble("projectSiteLng"),
object.getDouble("clockInDistanceFromProjectSiteInMetres"),
object.getDouble("clockOutDistanceFromProjectSiteInMetres")
);
personnelList.add(personnel);
}
但是在我的 http 调用的响应正文中,例如有时,调用“isClockedIn”的对象可能是空的,如果我这样做,那么我的构造函数就不会创建一个对象。
这是我很长的构造函数:
public Personnel(int contactType, String totalTimeSummary, String clockInTime, String clockOutTime, int isClockedIn, String clockInPhotoName, double clockInLat, double clockInLong, double clockOutLat, double clockOutLong, double projectLat, double projectLong, double clockInDistance, double clockOutDistance) {
this.contactType = contactType;
this.totalTimeSummary = totalTimeSummary;
this.clockInTime = clockInTime;
this.clockOutTime = clockOutTime;
this.isClockedIn = isClockedIn;
this.clockInPhotoName = clockInPhotoName;
this.clockInLat = clockInLat;
this.clockInLong = clockInLong;
this.clockOutLat = clockOutLat;
this.clockOutLong = clockOutLong;
this.projectLat = projectLat;
this.projectLong = projectLong;
this.clockInDistance = clockInDistance;
this.clockOutDistance = clockOutDistance;
}
我环顾四周,看到如果我的另一个构造函数没有填充所有需要的变量,你可以只创建一个默认构造函数,但我当然不想这样做,因为所有参数都将为空。
干杯。
您可以使用 optDouble,而不是调用 getDouble。第一个值应该是您已经在使用的键,第二个值应该是当从服务器响应中找不到该键时将使用的值。
你可以在这里找到一些真实世界的例子:https : //www.programcreek.com/java-api-examples/?class=org.json.JSONObject&method=optDouble
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句