如何使用 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;
}
我在 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;
}