Java Array列表在迭代JSON对象中的键时仅添加1项(最后一个键)

时间:2015-06-27 17:16:56

标签: java arraylist

所以我试图获取特定JSON对象中的所有键,但只获取最后一个键。

   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键显示所有键(大约300个em),但是logtagging脚本只显示最后一个键。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分: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));
    }