gpt4 book ai didi

android - 将 JSON 改造为 POJO

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:44 26 4
gpt4 key购买 nike

我是 android 新手,正在使用 retrofit

问题是我无法从请求中获取我的POJO

我的要求是:

@FormUrlEncoded
@POST("/index.php")
void login(@Field("io") String command,
@Field("lu") String userName,
@Field("lp") String password,
@Field("lm") String imei,
@Field("l") int language,
RestCallback<ModelLoginResponse> callback);

服务器 JSON 响应是:

  {
"tk": "thdoz4hwer32",
"pn": "1",
"lc": {
"1": "Opel Combo",
"3": "VW Crafter",
"7": "Opel Vivaro"
},
"stg": {
"rs": "30",
"sml": "http://exemple.mob.ru",
"ssl": "index.php"
}
}

where 1,3,7 are different every time

和我的 POJO 类:

 @Parcel
public class ModelLoginResponse {

@SerializedName("pn")
private String personalNumber;

@SerializedName("tk")
private String token;

// ?????? for "lc" and "stg"

public void ModelResponse(String personalNumber, String token){
this.personalNumber = personalNumber;
this.token = token;
}

public String getPersonalNumber() {
return personalNumber;
}

public void setPersonalNumber(String personalNumber) {
this.personalNumber = personalNumber;
}

public String getToken() {
return token;
}

public void setToken(String token) {
this.token = token;
}
}

我应该如何完成我的 ModelLoginResponse POJO 类以获得完整的服务器响应???

最佳答案

我知道这是一个老问题,你可能已经想通了,但我只是在这里发布一个答案,这样其他人可能会觉得它有帮助。

对于“lc”字段,每个响应的键值可能不同,您可以使用 Map 数据结构,例如 HashMap。

您可以为“stg”字段使用相同的 Map 结构,但如果您知道键将始终相同,通常最好为该项目创建另一个 POJO 类。

简而言之,您的回应将类似于:

@Parcel
public class ModelLoginResponse {
@SerializedName("pn")
private String personalNumber;

@SerializedName("tk")
private String token;

@SerializedName("lc")
private HashMap<String, String> lcMap;

@SerializedName("stg")
private StgResponse stgResponse;

//add getters and setters if you need them.
}

StgResponse 将类似于:

public class StgResponse {
@SerializedName("rs")
private Integer rs;

@SerializedName("sml")
private String sml;

@SerializedName("ssl")
private String ssl;

//Getters and setters
}

希望这对您有所帮助。

关于android - 将 JSON 改造为 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31028792/

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