我在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是一个字符串
答案 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;,这样,如果找到您的元素,它就不会继续寻找它。