2015-06-27 38 views
2

所以我試圖獲取特定JSON對象中的所有鍵,但只獲取最後一個鍵。Java Array列表在迭代JSON對象中的鍵時只添加1項(最後一個鍵)

public void setUpSearch(JSONObject data_json){ 

    Iterator<String> keys = data_json.keys(); 
    while (keys.hasNext()) { 
     //get the key 
     String key = keys.next(); 
     scripts = new ArrayList<String>(); 
     scripts.add(key); 
     Log.i(TAG, key); 
     Log.i(TAG, String.valueOf(scripts)); 
    } 

Logtagging鍵顯示所有按鍵(左右EM 300),但是logtagging腳本只顯示最後一個。

任何幫助將不勝感激。

+0

另外,請千萬記得要接受你的答案(所有的),如果他們給你滿意的答案(通過點擊刻度上的答案的左邊),這對社區會有所幫助 - – TheCodingFrog

+0

我會:-)接受電話 – silberbaum

回答

3

因爲代碼中存在BUG。 ArrayList初始化應該在循環外部,否則每次都覆蓋前一個循環。

使用下面的代碼:

public void setUpSearch(JSONObject data_json){ 

    Iterator<String> keys = data_json.keys(); 
    scripts = new ArrayList<String>(); 

    while (keys.hasNext()) { 
     //get the key 
     String key = keys.next(); 
     scripts.add(key); 
     Log.i(TAG, key); 
     Log.i(TAG, String.valueOf(scripts)); 
    } 
+0

它像一個魅力。我會在10分鐘內接受你的回答 – silberbaum

相關問題