我正在使用retrofit2 在标准的json响应中:{url} / login
{
"message": "get information succesfully",
"status_code": 100,
"data": {
"username": "usertest02",
"phone": "1111111",
"image": "http://test/1.jpg",
"online_status": 1
}
}
和另一个api:
String message;
int statusCode;
Object data;
我创建文件模型
BaseData.java
FileExtensionFilter
UserInformation.java(字段:用户名,图片...)
Authentication.java(字段:标记,标识,用户名...)
如何将[数据]解析为UserInformation和Authentication对象
感谢阅读。
答案 0 :(得分:0)
有很多方法可以做到。
您可以继续使用第三方库,例如 Gson
你的pojo类看起来有点像这样,使用Android插件或在线json到pojo转换器。
public class Response {
@SerializedName("data")
private Data mData;
@SerializedName("message")
private String mMessage;
@SerializedName("status_code")
private String mStatusCode;
public Data getData() {
return mData;
}
public void setData(Data data) {
mData = data;
}
public String getMessage() {
return mMessage;
}
public void setMessage(String message) {
mMessage = message;
}
public String getStatusCode() {
return mStatusCode;
}
public void setStatusCode(String statusCode) {
mStatusCode = statusCode;
}
public class Data {
@SerializedName("image")
private String mImage;
@SerializedName("online_status")
private Long mOnlineStatus;
@SerializedName("phone")
private String mPhone;
@SerializedName("username")
private String mUsername;
@SerializedName("token")
private String mToken;
@SerializedName("id")
private String mId;
public String getImage() {
return mImage;
}
public void setImage(String image) {
mImage = image;
}
public Long getOnlineStatus() {
return mOnlineStatus;
}
public void setOnlineStatus(Long onlineStatus) {
mOnlineStatus = onlineStatus;
}
public String getPhone() {
return mPhone;
}
public void setPhone(String phone) {
mPhone = phone;
}
public String getUsername() {
return mUsername;
}
public void setUsername(String username) {
mUsername = username;
}
public String getmToken() {
return mToken;
}
public void setmToken(String mToken) {
this.mToken = mToken;
}
public String getmId() {
return mId;
}
public void setmId(String mId) {
this.mId = mId;
}
}
}
现在将json字符串转换为pojo,使用Gson作为 -
Gson gson = new Gson();
Response response = gson.fromJson(yourresponseStr.toString(), Response.class);
您可以使用相同的响应类,或者您可以使用mapper类将响应作为参数,并通过使用 UserInformation.jav <映射状态来返回不同的pojo。 / strong> a或 Authentication.java
这样代码更易读,更清晰,您只使用所需的数据。 此外,如果需要序列化并传递给其他组件,则只传递必需的字段。