一尘不染

使用Retrofit库获取简单的JSON对象响应

json

我有一个带有JSON响应的网络查询:

{
    "status":true,
    "result":
      {
        "id":"1",
        "name":"ABC 1",
        "email":"info@ABc.dcom",
        "password":"123456",
        "status":false,
        "created":"0000-00-00 00:00:00"
      },
    "message":"Login successfully"
}

我将以下代码用于:

@GET("/stockers/login")
public void login(
        @Query("email") String email,
        @Query("password") String password,
        Callback<JSONObject> callback);

在调试器中,Retrofit库进行的查询是正确的,但是作为响应,我得到了一个空的JSON。

ApiManager.getInstance().mUrlManager.login(
        email.getText().toString().trim(),
        password.getText().toString().trim(),
        new Callback<JSONObject>()
        {
            @Override
            public void success(JSONObject jsonObj, Response response)
            {
                mDialog.dismiss();

阅读 253

收藏
2020-07-27

共1个答案

一尘不染

代替使用JSONObject类进行回调,您可以使用Retrofit基本回调,该基本回调使用Response类,然后,一旦获得响应,就必须从中创建JSONObject。

否则,您可以创建自己的模型类来处理响应。

首先是Result类:

public class Result {
    public int id;
    public String name;
    public String email;
    public String password;
    public boolean status;
    public Date created;
}

然后将您的响应类与Retrofit一起使用

public class MyResponse {
    public boolean status;
    public Result result;
    public String message;
}

现在您可以致电:

 @GET("/stockers/login") 
 public void login( 
    @Query("email") String email,
    @Query("password") String password,
    Callback<MyResponse> callback);
2020-07-27