GSON как мне проверить пару ключ / значение, не выбрасывая исключение нулевого указателя
У меня есть JsonArray элементов, и я хочу проверить каждый объект в массиве для поля "видео", некоторые элементы в массиве не будут иметь ключ, некоторые будут иметь ключ, и он будет нулевым, я хочу найти только элементы, которые имеют ключ, и он не является нулевым
public void addItems(ArrayList<JsonObject> j) {
if (j.size() > 0) {
ArrayList<String> videos = new ArrayList<String>();
for (int i = 0; i < j.size(); i++) {
try {
JsonElement test = j.get(i).getAsJsonObject().get("video");
if(!test.isJsonNull()){
videos.add(test.getAsString());
}
}
catch (JsonParseException e) {
e.printStackTrace();
}
}
if (videos.size() > 0) {
cloudCache.downloadVideos(videos);
}
}
}
Я продолжаю получать исключение нулевого указателя на строке
if(!test.isJsonNull()){
videos.add(test.getAsString());
}
1 ответ
Решение
Ваш "тест" JsonElement является нулевым для объекта, который вы пытаетесь найти.
Как вы сказали, у некоторых объектов есть видео, а у других нет.
Просто измените свой код на:
if(test!=null && !test.isJsonNull()){
videos.add(test.getAsString());
}