在JSONArray Android中过滤JSONObject

时间:2013-01-31 09:17:17

标签: android json arraylist arrays

我如何过滤这个JSONArray JSONObject" name"包含" abcd"

{
    "items":[{
            "id":"082111",
            "name":"abcd efgh"
        }, {
            "id":"082112",
            "name":"abcd klmn"
        }, {
            "id":"082113",
            "name":"klmn efgh"
        }, {
            "id":"082114",
            "name":"abcd efgh"
        }, {
            "id":"082115",
            "name":"efgh oprs"
        }
    ]
}

结果必须是

{
    "items":[{
            "id":"082111",
            "name":"abcd efgh"
        }, {
            "id":"082112",
            "name":"abcd klmn"
        }, {
            "id":"082114",
            "name":"abcd efgh"
        }
    ]
}

我怎么能得到这样的结果? 我应该将JSONArray转换为ArrayList,并在转换为ArrayList时进行过滤,并再次转换为JSONArray吗? 如果是,我如何将JSONArray转换为ArrayList并过滤它?并再次转向JSONArray? 请给我样品代码。

1 个答案:

答案 0 :(得分:0)

使用以下代码,您将获得所需要的,就像您所说的那样以字母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"));

                }

            }