0

我有一个 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());
 }
4

1 回答 1

1

对于您要查找的对象,您的 JsonElement“测试”为空。
正如您所说,有些对象有视频,而有些则没有。

只需将您的代码更改为:

if(test!=null && !test.isJsonNull()){
    videos.add(test.getAsString());
}
于 2014-03-11T03:21:48.940 回答