从Android中的JSONarray中删除JSONobject



我有一个动态JSON字符串,我想从android中的JSONARRAY中删除最后一个JSON对象。这是我在android中的动态JSON字符串。我的json字符串是

("{\"findAllUsersRespone\":"+arguments[0].toString()+"}");

    {
    "findAllUsersResponse": [
        {
            "id": "kicJw2whXyuGjbNo936L",
            "name": "Fghhjj",
            "udid": "2AA120E3-7478-4AD4-9C68-9C0920669B84"
        },
        {
            "id": "NEF45TWNI6-Uc_r7938R",
            "name": "ssss",
            "udid": "1DD083C2-7F1D-4BB3-9AB9-691A5FD251CC"
        },
        {
            "id": "xuXY7Ah2-O-jL4Zk939D",
            "name": "Test",
            "udid": "A892E0AB-6732-4F42-BEFA-3157315E9EE4"
        },
        {
            "id": "w1FnBz8B9ciWUzBk939k",
            "name": "Aditi",
            "udid": "A892E0AB-6732-4F42-BEFA-3157315E9EE4"
        }
    ]
}

如果您的String不会更改,并且只想删除最后一个对象,请使用子字符串并创建新字符串。

 String finduserjson=  "{"findAllUsersResponse": "+arguments[0].toString()+"}");
    String t = finduserjson.substring(finduserjson.indexOf("{"), finduserjson.lastIndexOf(",{"));
    String j = "]}";
    finduserjson = t+j;

干杯

也面临类似的问题。JSONarray对象中没有任何方法可以获得您想要的内容。你可以制作一个函数来删除它。在某个地方看到了这个解决方案。

   public static JSONArray remove(final int index, final JSONArray from) {
    final List<JSONObject> objs = getList(from);
    objs.remove(index);
    final JSONArray jarray = new JSONArray();
    for (final JSONObject obj : objs) {
        jarray.put(obj);
    }
    return jarray;
}
public static List<JSONObject> getList(final JSONArray jarray) {
    final int len = jarray.length();
    final ArrayList<JSONObject> result = new ArrayList<JSONObject>(len);
    for (int i = 0; i < len; i++) {
        final JSONObject obj = jarray.optJSONObject(i);
        if (obj != null) {
            result.add(obj);
        }
    }
    return result;
}

干杯!

如果使用JSON而不是GSONJACKSON,则无法调用.remove()方法,因为在那里找不到它。

你能做的最好的事情是,重新创建一个新的JSONArray,并在其中添加所需的JSONObjects

最新更新