如何创建适配Retrofit接口返回嵌套data字段JSON响应的实体类
实现方案
你需要新增对应data嵌套节点的实体类,并在原有UploadImageData中添加对应字段即可完成解析,具体实现如下:
步骤1:修改响应实体类
可以通过内部静态类或者独立类的方式定义data节点的结构,推荐直接用内部静态类减少类文件数量,修改后的代码如下:
public class UploadImageData { private int errorCode; private String error; private String status; // 新增对应data节点的字段 private Data data; // 内部静态类,对应JSON中data节点的结构 public static class Data { private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } // 原有字段的Getter/Setter public int getErrorCode() { return errorCode; } public void setErrorCode(int errorCode) { this.errorCode = errorCode; } public String getError() { return error; } public void setError(String error) { this.error = error; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } // 新增data字段的Getter/Setter public Data getData() { return data; } public void setData(Data data) { this.data = data; } }
步骤2:解析后取值
请求成功后,可通过以下方式获取data节点中的id值:
UploadImageData result = response.body(); String imageId = result.getData().getId();
注意事项
- 所有字段必须添加对应的Getter和Setter方法,Retrofit默认使用的Gson解析器需要通过这些方法读写字段值
- 如果Java字段名和JSON返回的字段名不一致,需要给字段添加
@SerializedName("JSON字段名")注解做映射 - 也可以将
Data类单独抽成独立的Java文件,解析效果完全一致
内容的提问来源于stack exchange,提问作者mylket
相关产品推荐
相关产品推荐

