У меня проблема с возвратом некоторого JSON из API, где данные не в ожидаемом формате.В документации по API говорится, что элемент «ShowEpisodes» является Array [], как это имеет место во втором элементе ниже.Но, как вы видите в первом случае, если элемент «ShowEpisodes» не содержит никаких элементов, он возвращается в виде пустой строки.
Есть ли способ, которым я могу решить эту проблему?Я связался со службой поддержки API, чтобы выяснить, почему возвращается пустая строка, но пока не получил ответа, а пока пытаюсь найти обходной путь.
Упрощенный JSON изAPI:
ShowSeasons: [
{
ShowEpisodes: ""
},
{
ShowEpisodes: { … }
}
]
Объекты класса:
public static class ShowSeason implements Serializable {
private static final long serialVersionUID = 1L;
public ShowEpisodeInfo ShowEpisodes;
}
public static class ShowEpisodeInfo implements Serializable {
private static final long serialVersionUID = 2L;
public List<SeasonProgramDetails> Program;
}
Трассировка стека:
com.google.gson.JsonParseException: Expecting object found: ""
at com.google.gson.JsonObjectDeserializationVisitor.visitFieldUsingCustomHandler(JsonObjectDeserializationVisitor.java:99)
at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:158)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:131)
at com.google.gson.JsonDeserializationVisitor.visitChild(JsonDeserializationVisitor.java:107)
at com.google.gson.JsonDeserializationVisitor.visitChildAsObject(JsonDeserializationVisitor.java:95)
at com.google.gson.JsonObjectDeserializationVisitor.visitObjectField(JsonObjectDeserializationVisitor.java:61)
at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:164)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:131)
........
Кто-нибудь знает способ обработки как пустой строки, так и массива объекта, когда API возвращает неверные данные?Или, возможно, способ подавления исключения, чтобы я просто отбрасывал неверные данные