Hen*_*que 7 android android-networking retrofit
我正在使用Retrofit来实现Rest Client,在尝试将响应体转换为模型Object时遇到了一些麻烦.
我的界面中有以下内容:
@POST("/users")
void createUser(@Body RegisterUserToken token, Callback<User> callback);
Run Code Online (Sandbox Code Playgroud)
我的User课基本上是一个POJO:
public class User {
private int id;
private String username;
private String email;
private String language;
// getters and setters...
}
Run Code Online (Sandbox Code Playgroud)
这就是我使用Rest Client的方式:
restClient.createUser(token, new Callback<User>() {
@Override
public void success(User user, Response response) {
// ...problem is here, with the user object
}
@Override
public void failure(RetrofitError error) {
// ...
}
});
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是响应主体没有被转换为User对象.我很确定问题是服务器正在返回:
{"user":{"id":13,"username":"john","email":"john@gmail.com","language":"eng"}}
Run Code Online (Sandbox Code Playgroud)
而不仅仅是:
{"id":13,"username":"john","email":"john@gmail.com","language":"eng"}
Run Code Online (Sandbox Code Playgroud)
鉴于我无法真正修改服务器代码,我如何自定义Retrofit/GSON以正确地将此响应主体转换为我的User对象?
像这样更改POJO类:
public static class User {
UserData user;
}
public static class UserData {
private int id;
private String username;
private String email;
private String language;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3874 次 |
| 最近记录: |