Java中JSONArray中的搜索元素

时间:2015-01-06 18:15:04

标签: java arrays

我在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是一个字符串

3 个答案:

答案 0 :(得分:6)

它应该是这样的:

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

答案 1 :(得分:1)

如果您要比较的对象是基本类型(例如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))

答案 2 :(得分:1)

您可以尝试这样的事情:

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

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