你好,我有一个json
String prev_string= [
{
"mac_address": "D3-D3-D3-D3-D4",
"minor": "2333",
"time": "11-12-2014 2:36 PM",
"major": "4444"
},
{
"mac_address": "D3-D3-D3-D3-D3",
"minor": "45555",
"time": "11-12-2014 2:36 PM",
"major": "2322"
}
]
JSONArray json= new JSONArray(prev_string);
json.remove(1);
我需要删除第二个对象,json.remove(1)工作正常,但在android之前lvl 19不能正常工作。删除,我怎样才能使它工作?
问候!
答案 0 :(得分:4)
是的,有点令人惊讶的是,直到API 19才添加它。您可以在某个地方定义一个实用程序方法,它迭代源对象,并将所有元素添加到新对象(指定的索引除外)。像这样:
public static JSONArray removeJsonObjectAtJsonArrayIndex(JSONArray source, int index) throws JSONException {
if (index < 0 || index > source.length() - 1) {
throw new IndexOutOfBoundsException();
}
final JSONArray copy = new JSONArray();
for (int i = 0, count = source.length(); i < count; i++) {
if (i != index) copy.put(source.get(i));
}
return copy;
}
答案 1 :(得分:1)
你说得对,这是从api 19开始添加的方法。这里没有简单的解决方法。
两个解决方案:
使用另一个库来保存Json对象。
OR
创建一个新的Json数组并逐个添加对象,除了 你要删除的一个。
答案 2 :(得分:0)
,诀窍是解析Collection中的对象,删除你不需要的项,然后使用带有集合的构造函数创建一个新的JSONArray。 Here文档