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());
}
Другие вопросы по тегам