2016-01-20 120 views
-1
{ "Employee" : 
     [ 
     {"id":"101","name":"Sonoo Jaiswal","salary":"50000"}, 
     {"id":"102","name":"Vimal Jaiswal","salary":"60000"} 
     ] 
    } 

for (int i =0;i< json_array.length(); i++) { 
    json_array.remove(i); 
    } 

我有一個示例JSONArray數據。我想刪除一定條件下的整個json數組。 但json_array.remove(position)方法不起作用。有沒有其他方法可以刪除Android中的整個JSON數組或元素?如何刪除Android中的JSON數組元素

+1

「JSONArray卸下襬臂(位置)不工作」你什麼意思是「不工作」嗎?請發佈您正在使用的代碼。 –

+0

jsonarray.remove(position)方法不適用於API級別。無論是否棄用jsonarray或其他方式。 – rajeshlawrance

+1

「無法在API級別工作」您是指「不工作」和「API級別」中的含義?請發佈您正在使用的代碼。 –

回答

0

如果你通過索引向前迭代數組,刪除元素,你將會在你剛刪除的元素後總是會錯過元素。

想一想陣列[A, B, C]

for (int i = 0; i < arr.length; ++i) { 
    arr.remove(i); 
} 
  • 在第一次迭代,i == 0,所以arr.remove(i)將刪除A;陣列現在是[B, C]
  • 在第二次迭代中,i == 1,所以arr.remove(i)將刪除C;陣列現在是[B]
  • 在第三次迭代中,i == 2超出了數組的長度,因此循環停止。

您的最終數組是[B]而不是[]

迭代反向:

for (int i =json_array.length() - 1;i >= 0; i--) { 
    json_array.remove(i); 
} 
0

我要與一定的條件

然後無需使用for-loopJSONArray移除項刪除整個JSON數組,只是刪除整個EmployeeJSONArray from JSONObject使用Employee key:

JSONObject jsonObject=new JSONObject(<json_string>); 
jsonObject.remove("Employee"); //<< pass JSONArray name here 
0

下面是另一個你可以做到這一點

JSONArray list = new JSONArray();  
JSONArray jsonArray = new JSONArray(jsonstring); 
int len = jsonArray.length(); 
    if (jsonArray != null) { 
     for (int i=0;i<len;i++) 
     { 
     //Excluding the item at position 
     if (i != position) 
     { 
      list.put(jsonArray.get(i)); 
     } 
    } 
    //Remove the element from arraylist 
    list.remove(position); 
}