在JSONArray Android中过滤JSONObject
如何筛选JSONObject“name”包含“abcd”的JSONArray 结果必然是在JSONArray Android中过滤JSONObject,android,json,arraylist,arrays,Android,Json,Arraylist,Arrays,如何筛选JSONObject“name”包含“abcd”的JSONArray 结果必然是 { "items":[{ "id":"082111", "name":"abcd efgh" }, { "id":"082112", "name":"abcd klmn" }, { "id":"082114", "name":
{
"items":[{
"id":"082111",
"name":"abcd efgh"
}, {
"id":"082112",
"name":"abcd klmn"
}, {
"id":"082114",
"name":"abcd efgh"
}
]
}
我怎么能得到这样的结果?
我是否应该将JSONArray转换为ArrayList,并在转换为ArrayList时进行筛选,然后再次转换为JSONArray?
如果是,我如何将JSONArray转换为ArrayList并对其进行过滤?然后再转到JSONArray?
请给我示例代码。使用以下代码,您将获得所需的代码,即以字母abcd开头的代码,如您所说
JSONObject json = new JSONObject(jsonString);
JSONArray jData = json.getJSONArray("items");
for (int i = 0; i < jData.length(); i++) {
JSONObject jo = jData.getJSONObject(i);
if ((jo.getString("name")).startsWith("abcd", 0)) {
Log.i("Name is ", jo.getString("name"));
}
}
jsonobjectjson=newjsonobject(jsonString);
JSONArray jData=json.getJSONArray(“项目”);
对于(int i=0;i
有很多教程可以实现这一点。到目前为止,您尝试了什么?在iOS中是否有类似于“filteredArrayUsingPredicate”的函数,或者没有使用for循环?如果json数组包含10000个对象,for循环方法是否会太慢?我认为在iOS中,您也可以使用startsWith()进行检索,您可以在iOS中检查这些方法。我对iOS没什么概念。很抱歉,演示错误。我的意思是,在Android中,如果我使用“for loop”方法对许多JSONObject进行过滤,它会拖累Android设备的性能吗?如果是,你有更好的建议吗?非常感谢您的回复。如果您想获得最佳性能,请根据需要使用gson或Jakson解析。有关解析json数据的有效方法的更多信息,请参阅
JSONObject json = new JSONObject(jsonString);
JSONArray jData = json.getJSONArray("items");
for (int i = 0; i < jData.length(); i++) {
JSONObject jo = jData.getJSONObject(i);
if ((jo.getString("name")).startsWith("abcd", 0)) {
Log.i("Name is ", jo.getString("name"));
}
}