2013-02-19 32 views
8

我正在處理一個項目,我必須清除JSON數組中的所有數據。似乎沒有像jsonArray.clear()這樣的方法。也試過jsonArray = new JSONArray()。這也沒有奏效。建議請如何清除JSON數組中的數據

+4

爲什麼不* jsonArray = new JSONArray()* work? – thang 2013-02-19 01:47:45

回答

8

只需創建一個新的JSONArray。

JSONArray otherJsonArray = new JSONArray(); 

或者迭代通過數組和remove(int index)的索引。

http://www.json.org/javadoc/org/json/JSONArray.html#remove(int)

+0

但是沒有方法刪除(int)JSONArray。我的IDE沒有顯示。我正在使用Android開發工具(Eclipse) – Joseph 2013-02-19 02:28:58

+0

JSONArray上沒有方法'remove'?這不是靜態的,所以這並不奇怪。這是一個實例方法,它會是'jsonArray.remove()';除非你不使用相同的org.json.JSONArray對象? – Anew 2013-02-19 02:50:30

+0

我正在使用org.json.JSONArray對象。我將該對象更改爲靜態,但仍然沒有方法remove() – Joseph 2013-02-19 05:43:48

1

你使用 otherJsonArray已經存在,那麼你使用

JSONArray otherJsonArray = new JSONArray("[]"); 
1

創建一個新的人會工作,除非你通過它作爲一個參數的方法,在這種情況下你需要修改引用的對象,因爲調用方法不會看到新的引用。

所以,如果是這樣的話,做反了,這樣你不會得到你的迭代超過界限:

int startingLength = someJsonArray.length(); 

    for (int i = startingLength - 1; i >= 0; i--) { 

     someJsonArray.remove(i); 

    } 
3

只要把jsonArray = new JSONArray()

0

我們可以使用someJsonArray.pop(指數)刪除需求記錄。 我們可以在循環中使用此代碼來刪除所有記錄。