在 Java 中的 JSONArray 中搜索元素

Search element in a JSONArray in Java

我在 Java 中有一个 JSONArray,如下所示: [“1”,“2”,“45”,“354”] 然后,我想在这个数组中搜索一个元素。例如,检查数组中是否包含“44”。我试试

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

但我无法得到错误,因为它的结果是数组,而不是 JSONArray

如果某个元素存在于 JSONArray 中,我该如何检查?

myElementToSearch 是一个字符串

如果您要比较的对象是基本类型(例如 int),则尝试 比较 而不是分配值。

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

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

如果它是一个对象,例如 String 应该使用 equals 方法进行比较:

// Comparing objects (not primitives)
if (myElementToSearch.equals(jsonArray[i]))

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

myElementToSearch.equals(jsonArray.getString(i))

它应该是这样的:

boolean found = false;
for (int i = 0; i < jsonArray.length(); i++)
    if (jsonArray.getString(i).equals(myElementToSearch))
        found = true;

我假设 jsonArray 的类型为 http://www.json.org/javadoc/org/json/JSONArray.html

您可以尝试这样的操作:

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

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