在Java中查找JSONArray中的元素

4

我有一个Java中的JSONArray,格式如下: ["1","2","45","354"] 然后,我想在这个数组中搜索元素。例如,检查"44"是否在数组中。我尝试使用以下代码:

boolean flag = false;
for (int i = 0; i < jsonArray.length(); i++) {
  if (jsonArray[i]= myElementToSearch){
    flag = true;
  }
}

但我无法得到错误,因为它的结果在一个Array中,而不是在JSONArray中。

如何检查JSONArray中是否存在一个元素?

myElementToSearch是一个字符串。


myElementToSearch 的类型是什么? - kraskevich
1
jsonArray的类型是什么?它是http://www.json.org/javadoc/org/json/JSONArray.html吗? - kraskevich
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Giancarlo Ventura Granados
你可以通过索引访问JSONArray中的元素,例如:jsonArray.get(index)。 - panagdu
3个回答

10

2

如果您与之进行比较的对象是原始类型(例如 int ),则请尝试使用比较而不是分配值。

// Comparing
if (jsonArray[i] == myElementToSearch)

vs

// Assigning
if (jsonArray[i] = myElementToSearch)

如果是一个对象,比如一个String,应该使用equals方法进行比较:
// Comparing objects (not primitives)
if (myElementToSearch.equals(jsonArray[i]))

如果数组是org.json.JSONArray,则可以使用以下方法来访问值:

myElementToSearch.equals(jsonArray.getString(i))

我收到了错误提示:需要数组,但发现了JSONArray。 - Giancarlo Ventura Granados

1
您可以尝试类似这样的代码:

boolean flag = false;
for (int i = 0; i < jsonArray.length(); i++) {
  if (jsonArray.get(i).toString().equals(myElementToSearch)){
    flag = true;
    break;
  }
}

请注意,我添加了 "break",这样,如果找到您的元素,它就不会继续寻找它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接