Я делаю вызов API, ответ включает в себя список объектов, ответ json:
[
{
"name": "jay",
"age": 27,
"avatar": "https://avatars.abc/bat_man/",
"friends": [{
"friend_name": "abc",
"friend_age": 23,
"avatar": "https://avatars.abc/thor/"
},
{
"friend_name": "xyz",
"friend_age": 26,
"avatar": "https://avatars.abc/hulk/"
},
{
"friend_name": "pqr",
"friend_age": 28,
"avatar": "https://avatars.abc/iron_man/"
}
]
},
{
"name": "ajay",
"age": 27,
"avatar": "https://avatars.abc/bat_man/",
"friends": [{
"friend_name": "abc",
"friend_age": 23,
"avatar": "https://avatars.abc/thor/"
},
{
"friend_name": "xyz",
"friend_age": 26,
"avatar": "https://avatars.abc/hulk/"
},
{
"friend_name": "pqr",
"friend_age": 28,
"avatar": "https://avatars.abc/iron_man/"
}
]
}
]
Я создал модель без свойства friends
, как только я добавил Список Friend
, я не смог использовать комнату, Теперь созданная мной модель будет работать для RetroFit, но она не будет работать для Room , поскольку Room не поддерживает List Objects внутри объекта.
Я исправил это с помощью @TypeConverter
, но после этого модернизация перестала работать.
Я ищу подход, чтобы я мог использовать одну и ту же модель для обоих (вызов API + сохранение данных через комнату).
Я пытался заставить модель работать с ROOM, но после этого мой обратный вызов api дооснащения приближается к onFailure()
по очевидной причине, что он не анализируется, я получаю ошибку Failed sending reply to debugger: Broken pipe
.
Есть ли какой-либо способ, поэтому я игнорирую какое-то конкретное свойство в вызове Retrofit и использую одну и ту же модель для обеих целей.
Моя модель выглядит:
@Entity(tableName = "user_table")
public class User {
private String name;
private String href;
private String avatar;
private Friends friend;
public User(String name, String href, String avatar, Friends friend) {
this.name = name;
this.href = href;
this.avatar = avatar;
this.friend = friend;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHref() {
return href;
}
public void setHref(String href) {
this.href = href;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public Friends getFriend() {
return friend;
}
public void setFriend(Friends friend) {
this.friend = friend;
}
}