我正在尝试读取没有对象名称的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
。
答案 0 :(得分:1)
将ArrayList
的初始化移到循环之外。
这样做
list = new ArrayList<String>();
for (int l = 0; l < chaletFacilities.length(); l++){
list.add(chaletFacilities.getString(l))
}
您所做的是一次又一次地初始化您的列表并添加元素。因此,在最后一次迭代时,列表将再次初始化,并且只添加了一个元素。
答案 1 :(得分:1)
您的列表应该在循环之外实例化。
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))
答案 2 :(得分:0)
ArrayList list = new ArrayList<String>();
for (int l = 0; l < chaletFacilities.length(); l++){
String facilities = chaletFacilities.getString(l);
list.add(facilities);
}
答案 3 :(得分:0)
您始终在创建新列表。因此,列表大小将为1,其中chaletFacilities数组中的最后一个值。
解决方案:将列表初始化保持在for循环之外,如下所示,并将数组下的所有值添加到您在顶部创建的单个列表中。
list = new ArrayList<String>();
for (int l = 0; l < chaletFacilities.length(); l++)
{
list.add(chaletFacilities.getString(l));
}