#java #android #json
Вопрос:
Удаление сериализации объектов в списке
В настоящее время у меня есть объект «Администратор», в котором по запросу GET AllAdmin() вернет мне следующий ответ. Это использовалось в «Почтальоне».
ПОЛУЧИТЬ ответ для AllAdmin() [ПОЧТАЛЬОН]
[
{
"adminId": 1,
"fullName": "Patrick ",
"email": "patrick@gmail.com",
"dob": "1669-12-12",
"mobileNumber": "96369636",
"password": "password123!",
"usages": [
{
"id": 3,
"datetimeUnlocked": "2021-06-07 10:12:23"
},
{
"id": 4,
"datetimeUnlocked": "2021-06-07 10:12:27"
}
],
"authorization": [
{
"id": 2,
"datetimeAccepted": "2021-06-07 10:12:14"
}
],
"adminAllow": []
},
{
"adminId": 2,
"fullName": "Worker ",
"email": "worker@gmail.com",
"dob": "2000-12-12",
"mobileNumber": "96399639",
"password": "password123!",
"usages": [],
"authorization": [],
"adminAllow": []
} ]
Текущий код-это моя модель администратора в моем приложении для Android.
Admin.java Класс Модели
public class Admin {
@SerializedName("adminId")
private long adminID;
@SerializedName("fullName")
private String adminFullName;
@SerializedName("email")
private String adminEmail;
@SerializedName("dob")
private String adminDOB;
@SerializedName("mobileNumber")
private String adminMobileNumber;
// Constructor
public Admin(long adminID, String adminFullName, String adminEmail, String adminDOB, String adminMobileNumber) {
this.adminID = adminID;
this.adminFullName = adminFullName;
this.adminEmail = adminEmail;
this.adminDOB = adminDOB;
this.adminMobileNumber = adminMobileNumber;
}
// Getter
public long getAdminID() {
return adminID;
}
public String getAdminFullName() {
return adminFullName;
}
public String getAdminEmail() {
return adminEmail;
}
public String getAdminDOB() {
return adminDOB;
}
public String getAdminMobileNumber() {
return adminMobileNumber;
}
}
Я хотел бы уточнить, каким образом я бы снял сериализацию свойств использования и авторизации, чтобы я мог получать доступ к записям данных и управлять ими?
Заранее благодарю вас за разъяснения!
Ответ №1:
Для usages
этого вы должны использовать a List<Usage>
в качестве сериализуемого. Я предполагаю, что вы используете модернизацию. Таким образом, модифицированный конвертер Gson позаботится о разборе массива Usage
. Та же логика применима и для authorization
. Вы можете использовать другой ключ для этого datetimeAccepted
случая.
Проверьте этот образец на наличие Usage
public class Usage {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("datetimeUnlocked")
@Expose
private String datetimeUnlocked;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDatetimeUnlocked() {
return datetimeUnlocked;
}
public void setDatetimeUnlocked(String datetimeUnlocked) {
this.datetimeUnlocked = datetimeUnlocked;
}
}
Ваш обновленный Admin
класс должен выглядеть так
public class Admin {
@SerializedName("adminId")
private long adminID;
@SerializedName("fullName")
private String adminFullName;
@SerializedName("email")
private String adminEmail;
@SerializedName("dob")
private String adminDOB;
@SerializedName("mobileNumber")
private String adminMobileNumber;
@SerializedName("usages")
private List<Usage> usages;
// Constructor
public Admin(long adminID, String adminFullName, String adminEmail, String adminDOB, String adminMobileNumber, List<Usage> usages) {
this.adminID = adminID;
this.adminFullName = adminFullName;
this.adminEmail = adminEmail;
this.adminDOB = adminDOB;
this.adminMobileNumber = adminMobileNumber;
this.usages = usages;
}
// Getter
public long getAdminID() {
return adminID;
}
public String getAdminFullName() {
return adminFullName;
}
public String getAdminEmail() {
return adminEmail;
}
public String getAdminDOB() {
return adminDOB;
}
public String getAdminMobileNumber() {
return adminMobileNumber;
}
public List<Usage> getUsages() {
return usages;
}
}
Комментарии:
1. @JeromeQuah, если это помогло вам решить проблему. Вы можете отметить это как принятый ответ