android - 使用 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 类以及如何访问各个列表。在此先感谢,这几天一直在努力解决这个问题。
解决方案
这将是您需要使用的主要 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;
}
}
推荐阅读
- javascript - 如何将信息从 div 发送到电报机器人?
- django - 如何在 Django 中进行删除确认
- swiftui - 如何在 SwiftUI 中删除 HStack 上的 TextField 和 Text 之间的空格?
- openapi - what are mandatory elements in OpenAPI spec
- ruby-on-rails - 为什么belongs_to / has_many 和inverse_of 不能自动水合对方?
- python - Can anyone help me with reading a continuously updating video file with python?
- python - Running flask-socketio in thread
- here-api - HERE 地图 API;before:destination 约束在 findsequence 请求中被忽略
- html - 为什么类不被视为 HTMLElement 的属性
- matlab - 将散点图背景更改为透明