在 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",这样,如果找到您的元素,它就不会继续寻找它。
我在 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",这样,如果找到您的元素,它就不会继续寻找它。