#android #json #firebase #gson #firebase-realtime-database
#Android #json #firebase #gson #firebase-база данных в реальном времени
Вопрос:
У меня есть json:
{
"station": {
"decription": "",
"geo": {
"lat": "55.8",
"lng": "25.2"
},
"htlist": [
"05:31",
"06:16",
"06:56",
"07:36",
"08:16",
"10:16"
],
"name": "Station name",
"number": "7",
"sid": "9998",
"wtlist": [
"05:31",
"06:16",
"06:56",
"07:36",
"23:16"
]
}
}
И модель:
public class Station {
@SerializedName("decription")
@Expose
private String decription;
@SerializedName("geo")
@Expose
private Geo geo;
@SerializedName("htlist")
@Expose
private List<String> htlist = new ArrayList<String>();
@SerializedName("name")
@Expose
private String name;
@SerializedName("number")
@Expose
private String number;
@SerializedName("sid")
@Expose
private String sid;
@SerializedName("wtlist")
@Expose
private List<String> wtlist = new ArrayList<String>();
public String getDecription() {
return decription;
}
public void setDecription(String decription) {
this.decription = decription;
}
public Geo getGeo() {
return geo;
}
public void setGeo(Geo geo) {
this.geo = geo;
}
public List<String> getHtlist() {
return htlist;
}
public void setHtlist(List<String> htlist) {
this.htlist = htlist;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public List<String> getWtlist() {
return wtlist;
}
public void setWtlist(List<String> wtlist) {
this.wtlist = wtlist;
}
}
Что я нашел?
Когда я попытался изменить:
public List<String> getWtlist() {
return wtlist;
}
для getWeekendTimeList()
GSON не использует это поле. Размер списка всегда равен 0.
Вопрос:
По каким причинам это происходит? Это GSON
или Firebase
ошибка? (У меня не было этой проблемы с GSON
раньше) Как изменить метод getter, чтобы избежать поломок в коде?
Комментарии:
1. Вы уже используете
getWeekendTimeList()
это возвращаетhtlist
в своем коде. Этот точный код работает так, как ожидалось. Что я должен сделать, чтобы воспроизвести проблему?2. @MohanadMohie виноват, я отредактировал свою модель. Я использую Firebase, возможно, проблема именно в этом
3. Я не понимаю, почему Firebase повлияет на ваш анализатор Gson, если строка JSON одинакова. Когда я попробовал это со статической строкой JSON, она работала нормально даже после изменения имени метода. Лучший обходной путь, который я могу предложить, — это добавить другой метод с именем,
getWeekendTimeList
который возвращаетgetWtlist
.