在我的代码中,尽管服务器返回了 User
模型,但该模型并未被反序列化。从我的代码 client.getPerson()
返回 Person
对象的实例,但 client.getUser()
返回一个空字符串
可能是什么问题?
我的Client
类如下,
public class Client implements Serializable {
@SerializedName("address")
private String address;
@SerializedName("nhif_no")
private String nhifNo;
@SerializedName("occupation_name")
private String occupationName;
@SerializedName("person")
private Person person;
@SerializedName("kra_pin")
private String kraPin;
@SerializedName("user")
private User user;
@SerializedName("client_id")
private int clientId;
@SerializedName("sales_agent_id")
private int salesAgentId;
public void setAddress(String address){
this.address = address;
}
public String getAddress(){
return address;
}
public void setNhifNo(String nhifNo){
this.nhifNo = nhifNo;
}
public String getNhifNo(){
return nhifNo;
}
public void setOccupationName(String occupationName){
this.occupationName = occupationName;
}
public String getOccupationName(){
return occupationName;
}
public void setPerson(Person person){
this.person = person;
}
public Person getPerson(){
return person;
}
public void setKraPin(String kraPin){
this.kraPin = kraPin;
}
public String getKraPin(){
return kraPin;
}
public void setUser(User user){
this.user = user;
}
public User getUser(){
return user;
}
public void setClientId(int clientId){
this.clientId = clientId;
}
public int getClientId(){
return clientId;
}
public void setSalesAgentId(int salesAgentId){
this.salesAgentId = salesAgentId;
}
public int getSalesAgentId(){
return salesAgentId;
}
}
我的Person
类如下,
public class Person implements Serializable {
@SerializedName("last_name")
private String lastName;
@SerializedName("middle_name")
private String middleName;
@SerializedName("first_name")
private String firstName;
@SerializedName("person_id")
private int personId;
public void setLastName(String lastName){
this.lastName = lastName;
}
public String getLastName(){
return lastName;
}
public void setMiddleName(String middleName){
this.middleName = middleName;
}
public String getMiddleName(){
return middleName;
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public String getFirstName(){
return firstName;
}
public void setPersonId(int personId){
this.personId = personId;
}
public int getPersonId(){
return personId;
}
}
我的User
类如下,
public class User implements Serializable{
@SerializedName("role_id")
private int roleId;
@SerializedName("email")
private String email;
public void setRoleId(int roleId){
this.roleId = roleId;
}
public int getRoleId(){
return roleId;
}
public void setEmail(String email){
this.email = email;
}
public String getEmail(){
return email;
}
}
我的JSON文件如下,
{
“客户”: {
“client_id”:128,
"nhif_no": "KJNH1289",
"kra_pin": "210986",
“销售代理 ID”:43,
"地址": "基库尤语",
"occupation_name": "囚犯",
“人”: {
“person_id”:358,
"first_name": "卡米蒂",
"middle_name": "杰拉",
"last_name": "巴里迪",
“性别”: {
“性别_id”:1,
“姓名”:“男”
}
},
“用户”:{
“电子邮件”:“jelabaridi@gmail.com”,
“角色 ID”:2
}
}
}
最佳答案
通过在 proguard 规则文件中添加以下行来修复此问题
-keep 类 org.myapp.mypackage.models.** { *; }
关于java - 使用 proguard 进行改造不会反序列化某些模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55865713/