如何使用 Root POST 改造 return JSON

How to POST retrofit return JSON with Root

我在 json 和 root/parent

之间遇到问题

网络服务

@POST("login")
Call<LoginResponse> userLogin(@Body LoginRequest loginRequest);

我的响应模型

public class LoginResponse {
    @SerializedName("token")
    private String tokenLogin;
    @SerializedName("token_type")
    private String tokenType;
    @SerializedName("expires_in")
    private String expiresTime;
}

我的通话回复:

  Call<LoginResponse> loginResponseCall = 
  ApiClient.getUserService().userLogin(loginRequest);
    loginResponseCall.enqueue(new Callback<LoginResponse>() {
        @Override
        public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
            if(response.isSuccessful()){
                token = response.body().getTokenLogin().toString();
                String tokenType = response.body().getTokenType();
                String tokenExpire = response.body().getExpiresTime();
                userDao.addUser(new User(etUsername.getText().toString().trim(),etPassword.getText().toString().trim(),token));
}

我的回答是:

{ “令牌”:“123456”, "token_type": "类型", "expire_in": "60" }

但需要采取这样的回应: { 用户:{ “令牌”:“123456”, "token_type": "类型", "expire_in": "60" } }

我需要做什么?

因此您创建了一个新的 class,因为命名用户成为该参数。试试这个

public class LoginResponse {
    @SerializedName("users")
    private User user;
}

制作另一个模型class。

public class User {
    @SerializedName("token")
    private String tokenLogin;
    @SerializedName("token_type")
    private String tokenType;
    @SerializedName("expires_in")
    private String expiresTime;
}