Я пытаюсь проанализировать результат JSON из API плагинов Wordpress с использованием Retrofit2 и GSON. Я сгенерировал свой POJO с помощью известного веб-сайта и изменил его на следующую модель:
PluginsApiResponse.java
public class PluginsApiResponse {
@SerializedName("plugins")
@Expose
private List<Plugin> plugins = null;
public List<Plugin> getPlugins() {
return plugins;
}
public void setPlugins(List<Plugin> plugins) {
this.plugins = plugins;
}
}
Plugin.java
public class Plugin {
@SerializedName("name")
@Expose
private String name;
@SerializedName("homepage")
@Expose
private String homepage;
@SerializedName("screenshots")
@Expose
private Screenshots screenshots;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHomepage() {
return homepage;
}
public void setHomepage(String homepage) {
this.homepage = homepage;
}
public Screenshots getScreenshots() {
return screenshots;
}
public void setScreenshots(Screenshots screenshots) {
this.screenshots = screenshots;
}
}
Screenshots.java
public class Screenshots {
@SerializedName("1")
@Expose
private com.dkalsan.retrofitwordpress._1 _1;
@SerializedName("2")
@Expose
private com.dkalsan.retrofitwordpress._2 _2;
@SerializedName("3")
@Expose
private com.dkalsan.retrofitwordpress._3 _3;
public com.dkalsan.retrofitwordpress._1 get1() {
return _1;
}
public void set1(com.dkalsan.retrofitwordpress._1 _1) {
this._1 = _1;
}
public com.dkalsan.retrofitwordpress._2 get2() {
return _2;
}
public void set2(com.dkalsan.retrofitwordpress._2 _2) {
this._2 = _2;
}
public com.dkalsan.retrofitwordpress._3 get3() {
return _3;
}
public void set3(com.dkalsan.retrofitwordpress._3 _3) {
this._3 = _3;
}
}
_1.java (_2.java и _3.java идентичны)
public class _1 {
@SerializedName("src")
@Expose
private String src;
@SerializedName("caption")
@Expose
private String caption;
public String getSrc() {
return src;
}
public void setSrc(String src) {
this.src = src;
}
public String getCaption() {
return caption;
}
public void setCaption(String caption) {
this.caption = caption;
}
}
Проблема возникает в том случае, если в поле снимки экрана нет записей. Я настроил HttpLoggingInterceptor, который регистрирует код ответа 200 и json в полном объеме. Я также исключил возможность возникновения проблемы с подключением к Интернету в соответствии со следующей статьей . Если я удаляю поле скриншотов из модели, нет проблем при разборе. Возможно ли, что ошибка сохраняется из-за того, что GSON пытается десериализовать несуществующие поля 1 , 2 и 3 , и если да, то как с этим бороться?