2013-02-19 10 views
8

私はJSON配列からすべてのデータを消去する必要があるプロジェクトを作成しています。 jsonArray.clear()のような方法はないようです。 jsonArray = new JSONArray()も試しました。それも働かなかった。提案をお願いしますJSON配列からデータをクリアする方法

+4

なぜ* jsonArray = new JSONArray()*は機能しませんか? – thang

答えて

8

新しいJSONArrayを作成するだけです。

JSONArray otherJsonArray = new JSONArray(); 

またはインデックスを使用してremove(int index)インデックスを繰り返します。

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

+0

しかし、JSONArrayのメソッドremove(int)はありません。私のIDEはそれを表示していません。私はAndroid開発ツール(Eclipse)を使用しています – Joseph

+0

JSONArrayで 'remove'メソッドはありませんか?それは静的ではないので、それは驚くべきことではありません。それはインスタンスメソッドです、 'jsonArray.remove()'でしょう。同じorg.json.JSONArrayオブジェクトを使用していない場合を除きます。 – Anew

+0

org.json.JSONArrayオブジェクトを使用していますか?私はそのオブジェクトを静的に変更しましたが、まだメソッドがありませんremove() – Joseph

1

そして、あなたは otherJsonArrayは、すでにあなたがた場合にあなたの方法にパラメータとして渡されていない限り、新しいものがうまくいくの作成

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

を使用し、既存のされていることを使用します呼び出し元のメソッドでは新しい参照が見えないため、参照されたオブジェクトを変更する必要があります。

それが事実であれば、逆方向にそれを行う、その方法は、あなたのイテレータが範囲を超え得ることはありません。

int startingLength = someJsonArray.length(); 

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

     someJsonArray.remove(i); 

    } 
3

はちょうど私達がsomeJsonArray.pop(インデックス)を使用することができますjsonArray = new JSONArray()

0

を置きます必要なレコードを削除します。 このコードをループで使用すると、すべてのレコードを削除できます。

関連する問題