如何获取存储在我的arraylist中的完整列表? 我的json是
{"Children": [{"Child": {"childID": "1001","childName": "aaa","trackerID": "t1"}},{"Child": {"childID": "1002","childName": "bbb","trackerID": "t2"}}]}
代码:
JSONObject json =new JSONObject(line);
int len=json.getJSONArray("Children").length();
System.out.println(len); //len is 2
ArrayList Children=new ArrayList();
Map store=new HashMap();
String[] cid=new String[len];
String[] name=new String[len];
for(int i=0;i<len;i++)
{
cid[i]=json.getJSONArray("Children").getJSONObject(i).getJSONObject("Child").get("childID").toString();
name[i]=json.getJSONArray("Children").getJSONObject(i).getJSONObject("Child").get("childName").toString();
store.put("ID", cid[i]);
store.put("Names",name[i]);
}
Children.add(store);
System.out.println(Children);
我得到的输出是[{Names=bbb, ID=1002}]
但还有更多的id和名称。预期输出为[{Names=aaa, ID=1001}],[{Names=bbb, ID=1002}]
如何打印所有内容?
答案 0 :(得分:0)
试试这个
for(int i=0;i<len;i++)
{
Map store=new HashMap();
cid[i]=json.getJSONArray("Children").getJSONObject(i).getJSONObject("Child").get("childID").toString();
name[i]=json.getJSONArray("Children").getJSONObject(i).getJSONObject("Child").get("childName").toString();
store.put("ID", cid[i]);
store.put("Names",name[i]);
Children.add(store);
}
System.out.println(Children);
只需初始化循环内的Hashmap
。
答案 1 :(得分:0)
每次循环时,您都会覆盖地图存储中的键/值。
for(int i=0;i<len;i++)
{
...
store.put("ID", cid[i]); // always using key "ID"
store.put("Names",name[i]); // always using key "Names"
}
你需要移动
Children.add(store);
在for循环中。
话虽如此,你真的需要在这里使用商店吗?
答案 2 :(得分:0)
Children.add(store);
将此行移到侧面for循环
答案 3 :(得分:0)
使用相同的两个键(“ID”和“Names”)将所有元素存储到Map中。
试试这个:
store.put(cid[i], name[i]);