我有动态JSON字符串我想从android中的JSONARRAY中删除最后一个JSON对象。这是我在android中的动态JSON字符串。我的json字符串是
(" {\" findAllUsersResponse \":" + 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"
}
]
}
答案 0 :(得分:1)
遇到了类似的问题。 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;
}
干杯!
答案 1 :(得分:1)
如果您的String不会更改,并且您只想删除最后一个对象,请使用 substring 并创建新字符串。
String finduserjson= "{\"findAllUsersResponse\": "+arguments[0].toString()+"}");
String t = finduserjson.substring(finduserjson.indexOf("{"), finduserjson.lastIndexOf(",{"));
String j = "]}";
finduserjson = t+j;
干杯
答案 2 :(得分:0)
如果您使用JSON
而不是GSON
或JACKSON
,则无法调用.remove()
方法,因为您无法在那里找到它。
您可以做的最好的事情是,重新创建一个新的JSONArray
并在其中添加必需的JSONObjects
。