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

标签 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));
    }

日志标记键显示所有键(大约 300 个 em),但日志标记脚本仅显示最后一个。

任何帮助将不胜感激。

最佳答案

因为你的代码有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));
    }

关于Java 数组列表在迭代 JSON 对象中的键时仅添加 1 个项目(最后一个键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31091389/

相关文章:

java - JNA 将 Java String 映射到 PCWSTR

java - ListIterator 抛出 "Exception in thread "main“java.util.ConcurrentModificationException”Java

java - 如何使用 for 每个循环访问另一个类中的 ArrayList

Java数组最小值和最大值问题

java - 使用 Python/C++/Java 将实时视频流式传输到网页的最佳方法

java - ArrayList 调整当前底层数组的大小或创建一个新数组?

java - 如何分离迭代器的元素?

java - 如何按字母顺序对 ArrayList 进行排序并将其与 setText 方法一起使用?

javascript - Wicket AjaxTabbedPanel 选项卡导航需要第二次点击

java - 如何在收到输入后通知所有线程