gpt4 book ai didi

android - 用gson拯救模型的公共(public)结构

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:25 24 4
gpt4 key购买 nike

我正在使用 retrofit 和 Gson 转换器。我有两个具有相同结构的 JSON,如下所示。

JSON 1

{"message":"ok", 
"code":200,
"result":[{"name":"test"
"id":121
}]
}

JSON 2

{"message":"ok", 
"code":200,
"result":[{"first_name":"test"
"last_name":"testing2"
"middle_name":"test123"
}]
}

为此,我创建了一个通用模型类,例如

public void CommonModel {
@SerializedName("code")
public int code;

@SerializedName("message")
public String message;

@SerializedName("result")
public ResultModel result;

public void ResultModel{
public List<JSON1> json1;
public List<JSON2> json2;
}
}

public void JSON1 {
@SerializedName("id")
public int id;

@SerializedName("name")
public String name;
}

public void JSON2 {
@SerializedName("first_name")
public String firstName;

@SerializedName("last_name")
public String lastName;

@SerializedName("middle_name")
public String middleName;
}

但它不起作用。当我在 Jackson 中尝试相同的概念时,效果很好。我想为 Web 服务的响应重用 CommonModel。大家有解决办法欢迎补充

最佳答案

创建通用模型如下

public class Common {
@SerializedName("message")
private String message;

@SerializedName("code")
private String code;

public String getMessage() {
return message;
}

public String getCode() {
return code;
}
}

为 Json One 创建以下模型,在此类上扩展通用模型

public class JsonOne extends Common {

@SerializedName("result")
private List<JsonObjectOne> jsonObjectOneList;

public List<JsonObjectOne> getJsonObjectOneList() {
return jsonObjectOneList;
}

public void setJsonObjectOneList(List<JsonObjectOne> jsonObjectOneList) {
this.jsonObjectOneList = jsonObjectOneList;
}
}

public class JsonObjectOne {
@SerializedName("name")
private String name;

@SerializedName("id")
private String id;

public String getName() {
return name;
}

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

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}
}

为 Json 创建模型两个在此类上扩展通用模型

public class JsonTwo extends Common {
@SerializedName("result")
private List<JsonObjectTwo> jsonObjectTwoList;

public List<JsonObjectTwo> getJsonObjectTwoList() {
return jsonObjectTwoList;
}

public void setJsonObjectTwoList(List<JsonObjectTwo> jsonObjectTwoList) {
this.jsonObjectTwoList = jsonObjectTwoList;
}
}

public class JsonObjectTwo {
@SerializedName("first_name")
private String firstName;

@SerializedName("last_name")
private String lastName;

@SerializedName("middle_name")
private String middleName;

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public String getMiddleName() {
return middleName;
}

public void setMiddleName(String middleName) {
this.middleName = middleName;
}
}

关于android - 用gson拯救模型的公共(public)结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42513342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com