首页 > 解决方案 > 使用 Retrofit 的具有多个数组的对象

问题描述

我正在使用 android 和节点 API,JSON 对象有多个数组,如下所示。这是我需要在 android 中使用改造来处理的以下响应。

    {
    "NewUser": [
        {
            "UserID": 001,
            "Name": "Linda",
            "Surname": "Curry"

        }
    ],
    "ExistingUser": [
        {
             "UserID": 002,
            "Name": "Jim",
            "Surname": "Noah"
        }
    ],
    "ArchivedUser": [
        {
            "UserID": 003,
            "Name": "Nina",
            "Surname": "Ivanka"
        }
    ]
}
}

我不确定如何设置我的 POJO 类以及如何访问各个列表。在此先感谢,这几天一直在努力解决这个问题。

标签: android

解决方案


这将是您需要使用的主要 POJO 类。子类发布在下面。如您所见,您可以在代码中相应地访问各个列表。例如,您想要 NewUser 列表,然后您可以在下面给出的列表中访问它。

import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Example {

@SerializedName("NewUser")
@Expose
private List<NewUser> newUser = null;
@SerializedName("ExistingUser")
@Expose
private List<ExistingUser> existingUser = null;
@SerializedName("ArchivedUser")
@Expose
private List<ArchivedUser> archivedUser = null;

public List<NewUser> getNewUser() {
return newUser;
}

public void setNewUser(List<NewUser> newUser) {
this.newUser = newUser;
}

public List<ExistingUser> getExistingUser() {
return existingUser;
}

public void setExistingUser(List<ExistingUser> existingUser) {
this.existingUser = existingUser;
}

public List<ArchivedUser> getArchivedUser() {
return archivedUser;
}

public void setArchivedUser(List<ArchivedUser> archivedUser) {
this.archivedUser = archivedUser;
}

}

这是 ArchivedUser 类:

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class ArchivedUser {

@SerializedName("UserID")
@Expose
private Integer userID;
@SerializedName("Name")
@Expose
private String name;
@SerializedName("Surname")
@Expose
private String surname;

public Integer getUserID() {
return userID;
}

public void setUserID(Integer userID) {
this.userID = userID;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSurname() {
return surname;
}

public void setSurname(String surname) {
this.surname = surname;
}

}

这是 ExistingUser 类:

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class ExistingUser {

@SerializedName("UserID")
@Expose
private Integer userID;
@SerializedName("Name")
@Expose
private String name;
@SerializedName("Surname")
@Expose
private String surname;

public Integer getUserID() {
return userID;
}

public void setUserID(Integer userID) {
this.userID = userID;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSurname() {
return surname;
}

public void setSurname(String surname) {
this.surname = surname;
}

}

这是 NewUser 类:

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class NewUser {

@SerializedName("UserID")
@Expose
private Integer userID;
@SerializedName("Name")
@Expose
private String name;
@SerializedName("Surname")
@Expose
private String surname;

public Integer getUserID() {
return userID;
}

public void setUserID(Integer userID) {
this.userID = userID;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSurname() {
return surname;
}

public void setSurname(String surname) {
this.surname = surname;
}

}

推荐阅读