我想从我的JSON获取数据,我已经使用jsonschema2pojo转换并在我的android项目中使类名为Login,但是当我尝试在我的类中获取数据时它仍然获得null值。 这是我的代码
Login.java
@SerializedName("id_user")
@Expose
private String idUser;
@SerializedName("id_role")
@Expose
private String idRole;
@SerializedName("username")
@Expose
private String username;
@SerializedName("password")
@Expose
private String password;
@SerializedName("email")
@Expose
private String email;
@SerializedName("id_peg")
@Expose
private Object idPeg;
@SerializedName("id_pel")
@Expose
private String idPel;
Loginactivity
public void login() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
LoginAPI api = retrofit.create(LoginAPI.class);
Call<Login> call = api.Login(username, password);
call.enqueue(new Callback<Login>() {
@Override
public void onResponse(Call<Login> call, Response<Login> response) {
response.body();
Integer value=response.body().getValue();
String message=response.body().getMessage();
progress.dismiss();
if(value==1){
String email=response.body().getEmail();
Toast.makeText(LoginActivity.this, message, Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(LoginActivity.this, message, Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<Login> call, Throwable t) {
t.printStackTrace();
progress.dismiss();
Toast.makeText(LoginActivity.this,"Network Connection Error",Toast.LENGTH_SHORT).show();
}
});
}
答案 0 :(得分:0)
使用@Expose和@SerializedName可能是问题所在:
使用:
@Expose
private String id_user;
或
@SerializedName("id_user")
private String idUser;
This可能有所帮助。
修改强>
另外我注意到响应是一个数组,而不是一个对象!所以电话会是这样的:
Call<Login[]> call = api.Login(username, password);
相应的回复也将使用Login []而不是Login。