【问题标题】:Get jsonArray objects without value name and pass it to list获取没有值名的 jsonArray 对象并将其传递给列表
【发布时间】:2018-01-09 05:12:24
【问题描述】:

我正在尝试读取没有对象名称的 json 数组,并将其传递给列表。

我的 json 看起来像:

"facilites": [
    "Pool",
    " Air Conditioning",
    " Pets Allowed",
    " Fitness center",
    " Kitchen",
    " Internet",
    " Sona"
  ]

我正在尝试使用以下代码检索它 -

for (int l = 0; l < chaletFacilities.length(); l++){
                            String facilities =  chaletFacilities.getString(l);
                            list = new ArrayList<String>();
                            list.add(facilities);

                        }

在我的 pojo 类 chalets.setList(list); 的主循环中

问题在于这一行list.add(facilities); 它只添加了最后一个元素。遍历所有后,列表只携带sona

【问题讨论】:

  • 这是无效的 json 请在此处查看jsonlint.com
  • 查看以下答案

标签: android json for-loop arraylist


【解决方案1】:

您总是在创建新列表。因此,您的列表大小将为 1,其中 chaletFacilities 数组中的最后一个值。

解决方案:将列表初始化保持在 for 循环之外,如下所示,并将数组下的所有值添加到您在顶部创建的单个列表中。

list = new ArrayList<String>();

for (int l = 0; l < chaletFacilities.length(); l++)
 {
list.add(chaletFacilities.getString(l));
 }

【讨论】:

    【解决方案2】:
        ArrayList list = new ArrayList<String>();
        for (int l = 0; l < chaletFacilities.length(); l++){
               String facilities =  chaletFacilities.getString(l);
               list.add(facilities);
        }
    

    【讨论】:

      【解决方案3】:

      您的列表应该在循环之外实例化。

      list = new ArrayList<String>();
      for (int l = 0; l < chaletFacilities.length(); l++){
        String facilities =  chaletFacilities.getString(l);
        list.add(facilities);
      }
      

      一个改进是直接将字符串添加到列表中,而不是将其捕获到像list.add(chaletFacilities.getString(l))这样的字符串变量中

      【讨论】:

      • 系统在 3 mint 后说。
      【解决方案4】:

      ArrayList 的初始化移到循环之外。 这样做

      list = new ArrayList<String>();
      for (int l = 0; l < chaletFacilities.length(); l++){
             list.add(chaletFacilities.getString(l))
      }
      

      您所做的是一次又一次地初始化您的列表并添加元素。因此,在上次迭代时,列表再次被初始化,并且只添加了一个元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-22
        • 2023-03-22
        • 2015-02-27
        • 1970-01-01
        相关资源
        最近更新 更多