Я хочу получить массив объектов (JSON), а затем получить некоторое значение.
Я попытался сделать все как здесь: Как получить массив объектов с помощью gson / retrofit?
но у меня появляется ошибка подсказки от Android Studio, например Cannot resolve method 'getId()'
JSON:
[{
"id": "551454",
"rights": ["auth", "objects-prepaid-get"],
"services": [{
"service_id": "103",
"options": {
"sum": 0
},
"dismisable": 0
}],
"date_activate": "2017-11-11",
"period": {
"date_action": "2019-03-29",
"after": 0
},
"ast": {
"id": "3",
"services": [{
"service_id": "4",
"dismisable": 0
}, {
"service_id": "5",
"dismisable": 0
}]
},
"ast_s": {
"id": "82",
"services": [{
"service_id": "4",
"dismisable": 0
}, {
"service_id": "5",
"dismisable": 0
}],
"date": "2019-03-29",
"dissmissable": 1
}
}]
Что я делаюв деятельности:
onCreate(){
...
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
SomeAPI userClient2 = retrofit.create(SomeAPI.class);
getUserInfo();
}
private void getUserInfo() {
token = AppPreferences.getStringFromSh(getApplicationContext());
Call<List<User>> call2 = userClient2.getInfoUser("Bearer " + token);
call2.enqueue(new Callback<List<User>>() {
@Override
public void onResponse(Call<List<User>> call, Response<List<User>> response) {
if (response.code() == 200){
id = response.body().getId(); //id - List<Integer>
tvAccount.append(" " + id);
}
else {
Toast.makeText(UserProfile.this, "Err while loading", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<List<User>> call, Throwable t) {
Toast.makeText(UserProfile.this, "error!", Toast.LENGTH_SHORT).show();
}
});
}
В интерфейсе у меня есть:
@GET("objects")
Call<List<User>> getInfoUser(@Header("Authorization") String token);
В User.class у меня есть:
public class User {
private List<Integer> id;
public List<Integer> getId(){
return id;
}
public void setId(List<Integer> id){
this.id = id;
}
}
Что не так с моим кодом?Где я допустил ошибку?
UPD:
Пробовал:
id = response.body().get(0).getId();
tvAccount.append(" " + id);
Получение:
Expected BEGIN_ARRAY but was StRING at line 1 column 9 path $[0].id