2
我使用改造2消耗的JSON API時,我有以下JSON結構空指針試圖訪問POJO屬性
{
"data": {
"id": 1,
"name": "Josh"
}
}
我User
POJO看起來像:
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
和我用戶界面
@GET("/api/v1/me")
Call<User> me();
但我當我嘗試做response.body().getName()
我得到 空指針異常。
爲JSON響應POJO:
其發出請求
UserService userService = ServiceGenerator.createService(UserService.class)
Call<User> call = userService.me();
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Response<User> response, Retrofit retrofit) {
if(response.isSuccess()) {
Log.i("user", response.body().getName().toString());
}
}
@Override
public void onFailure(Throwable t) {
Log.i("hello", t.getMessage());
}
});
你的名字屬性在數據屬性中,因此反序列化是不正確的 – cafebabe1991
@ cafebabe1991是這是我認爲,從POJO的數據屬性中獲取它的正確方法是什麼? – joshuahornby10
你可以創建另一個pojo,在那裏有Data對象屬性...所以首先從響應中獲得Data,從中獲取名稱和id。 – cafebabe1991