GSON如何在不抛出空指针异常的情况下测试键/值对

时间:2014-03-11 03:19:18

标签: android json gson android-json

我有一个JsonArray的元素,我想检查数组中的每个对象的字段“视频”数组中的一些项目将没有密钥,一些将具有密钥,它将为null,我想只找到具有键的元素,它不是空的

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 个答案:

答案 0 :(得分:1)

对于要查找的对象,您的JsonElement“test”为空 正如你所说,有些对象有视频而其他对象没有。

只需将您的代码更改为:

if(test!=null && !test.isJsonNull()){
    videos.add(test.getAsString());
}