删除JsonArray中的值

时间:2015-12-27 16:42:55

标签: android json

我想删除这个jsonArray中的值:

{"category_ids":[0,1,2,3,4,5],"keyword":""}

例如,我想从category_ids jsonArray中删除0。

任何人都可以帮助我吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

    String load = "{\"category_ids\":[0,1,2,3,4,5],\"keyword\":\"\"}";
    try {

        JSONObject jsonObject_load = new JSONObject(load);
        JSONArray jsonArray =  jsonObject_load.getJSONArray("category_ids");
        Log.d("out", RemoveJSONArray(jsonArray,1).toString());

    } catch (JSONException e) {
        e.printStackTrace();
    }
 public static JSONArray RemoveJSONArray( JSONArray jarray,int pos) {

    JSONArray Njarray = new JSONArray();
    try {
        for (int i = 0; i < jarray.length(); i++) {
            if (i != pos)
                Njarray.put(jarray.get(i));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return Njarray;
 }

答案 1 :(得分:0)

API 19以下

String result = "{\"category_ids\":[0,1,2,3,4,5],\"keyword\":\"\"}";

        try {
            JSONObject jsonObject = new JSONObject(result);
            JSONArray jsonArray = jsonObject.getJSONArray("category_ids");
            jsonArray = removeValue(jsonArray, 0);  // below api 19
            // jsonArray.remove(0); // above api 19
        } catch (JSONException e) {
            e.printStackTrace();
        }

public JSONArray removeValue(JSONArray jsonArray, int index) {
        JSONArray copyArray = new JSONArray();
        try {
            if (index < jsonArray.length()) {
                for (int i = 0; i < jsonArray.length(); i++) {
                    if (i != index) {
                        copyArray.put(jsonArray.get(i));
                    }
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return copyArray;
    }

以上API 19使用 jsonArray.remove(0);

我希望这会对你有所帮助。