我有一个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());
}
答案 0 :(得分:1)
对于要查找的对象,您的JsonElement“test”为空 正如你所说,有些对象有视频而其他对象没有。
只需将您的代码更改为:
if(test!=null && !test.isJsonNull()){
videos.add(test.getAsString());
}