【发布时间】:2017-10-25 14:18:59
【问题描述】:
我正在尝试解析来自服务器的 JSON 响应,如果在 post 方法中发送的查询中有更改,我将获得第一个作为响应,否则我将获得第二个作为响应。
1:
{
"status": 1,
"data": {
"firstname": "First Name",
"lastname": "Last Name",
"mobilenumber": "1234567894",
"emailid": "test@gmail.com",
"timezone": "Asia/Kolkata"
},
"user_id": "",
"response": "Profile Updated Successfully"
}
2:
{
"status": 1,
"data": "No changes to update",
"user_id": ""
}
你可以看到data是否有变化返回一个对象,如果没有变化data返回一个字符串。
我正在使用这种方法来获取数据,并且我正在使用 Gson Converter 来映射数据。
这是请求接口
@FormUrlEncoded
@POST("pondguard/updateprofile")
Call<UserResponse> getInfoUpdated(@Field("user_id") String user_id,
@Field("firstname") String firstName,
@Field("lastname") String lastName,
@Field("mobilenumber") String mobileNumber,
@Field("emailid") String emailID)
这是我的 POJO 类
public class UserResponse implements Parcelable {
public static final Creator<UserResponse> CREATOR = new Creator<UserResponse>() {
@Override
public UserResponse createFromParcel(Parcel in) {
return new UserResponse(in);
}
@Override
public UserResponse[] newArray(int size) {
return new UserResponse[size];
}
};
private String status;
private Data data;
private String response;
private String error;
protected UserResponse(Parcel in) {
status = in.readString();
data = in.readParcelable(Data.class.getClassLoader());
response = in.readString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(status);
dest.writeParcelable(data, flags);
dest.writeString(response);
}
public String getStatus() {
return status;
}
public Data getData() {
return data;
}
public String getResponse() {
return response;
}
public String getError() {
return error;
}
}
最后是我打的改造电话:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ConstantUtils.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
UserInfoRequestInterface requestInterface = retrofit.create(UserInfoRequestInterface.class);
Call<UserResponse> call = requestInterface.getInfoUpdated(user_id, firstName, lastName, phoneNumber, email, null, null);
【问题讨论】:
-
告诉您的服务器人员发送相同的响应,无论查询如何,如果没有具有空白值的数据更新发送键