Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSONArray Android中过滤JSONObject_Android_Json_Arraylist_Arrays - Fatal编程技术网

在JSONArray Android中过滤JSONObject

在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":

如何筛选JSONObject“name”包含“abcd”的JSONArray

结果必然是

{
    "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"));

                }

            }