来自WebService的调用响应如下:
{
"mobilenumber": "09999999999",
"service": "1" ,
"id": "1"
}
如何将收到的Json解析为对象?
@Override
public void onResponse(Call<Login> call, Response<Login> response) {
if (response.isSuccessful()) {
}
}
答案 0 :(得分:0)
此代码为您提供了如何解析json。
@Override
public void onResponse(Call<Login> call, Response<Login> response) {
if (response.isSuccessful()) {
JSONObject jsonobject = new JSONObject(yourresponse);
String mobilenumber = jsonobject.getString("mobilenumber");
String service = jsonobject.getString("service");
String id = jsonobject.getString("id");
}
答案 1 :(得分:0)
默认情况下,Retrofit只能将HTTP主体反序列化为OkHttp的ResponseBody类型。
使用Gson与JSON进行序列化的转换器。将创建一个默认的Gson实例,或者可以配置一个Gson实例并将其传递给GsonConverterFactory以进一步控制序列化。
添加到gradle;
compile 'com.squareup.retrofit2:converter-gson:latest.version'
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.xxx.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
答案 2 :(得分:0)
假设您有Login
这样的模型:
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Login {
@SerializedName("mobilenumber")
@Expose
private String mobilenumber;
@SerializedName("service")
@Expose
private String service;
@SerializedName("id")
@Expose
private String id;
public String getMobilenumber() {
return mobilenumber;
}
public void setMobilenumber(String mobilenumber) {
this.mobilenumber = mobilenumber;
}
public String getService() {
return service;
}
public void setService(String service) {
this.service = service;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
在您的改造onResponse()
方法中:
@Override
public void onResponse(Call<Login> call, Response<Login> response) {
if (response.isSuccessful()) {
Login loginObject = response.body();
String mobileNumber = loginObject.getMobilenumber();
String service = loginObject.getService();
String id = loginObject.getId();
}
}