如何添加从json对象获取的多个对象

时间:2014-11-17 10:26:01

标签: android json arraylist

我有2个数组列表。我正在尝试将多个相同类型的对象添加到一个数组列表中,但是当我从数组列表中检索时,我只能从中获取最近添加的对象。

这是我的代码。

JSONObject js =new JSONObject(EntityUtils.toString(et));
JSONArray ja=js.getJSONArray("formQuestionsData");
fqd=new FormQnData();
afqd=new ArrayList<FormQnData>();
for(int i=0;i<ja.length();i++){
JSONObject js1=ja.getJSONObject(i);
fqd.setQuestion(js1.getString("question"));
fqd.setId(js1.getString("id"));
fqd.setFormid(js1.getString("form_id"));
fqd.setFieldintab(js1.getString("filed_in_table"));
afqd.add(fqd);
}
JSONArray ja2=js.getJSONArray("fieldsArray");
fields=new ArrayList<String>();
for(int i=0;i<ja2.length();i++){
fields.add(ja2.getString(i));
Log.d("crm", "retriving from json"+ja2.getString(i));
}
formdet.setArfields(fields);
for(int i=0;i<ja2.length();i++){
fields.add(ja2.getString(i));
Log.d("crm", "retriving from array"+formdet.getArfields().get(i));
}
formdet.setFqndata(afqd);
Log.d("crm", formdet.getFqndata().get(0).getFieldintab());
JSONArray ja1=js.getJSONArray("formResData");
frd=new FormResData();
afrd=new ArrayList<FormResData>();
for(int i=0;i<ja1.length();i++){
JSONObject js2=ja1.getJSONObject(i);
frd.setId(js2.getString("id"));
frd.setUpdatedby(js2.getString("field_updatedBy"));
frd.setUpdatedon(js2.getString("field_updatedOn"));
Log.d("crm", "values:"+afqd.size());
fields1=new ArrayList<String>();
for(int j=0;j<afqd.size();j++){
//Log.d("crm", "values:"+js2.getString(formdet.getFqndata().get(j).getFieldintab()));
fields1.add(js2.getString(formdet.getArfields().get(j)));
//Log.d("crm", "values:"+js2.getString(formdet.getArfields().get(j)));
}
frd.setFields(fields1);
afrd.add(frd);
}
formdet.setFresdata(afrd);
for(int j=0;j<afqd.size();j++){
Log.d("crm", "values from array of res:"+formdet.getFresdata().get(0).getFields().get(j));
Log.d("crm", "values from array of res:"+formdet.getFqndata().get(0).getFieldintab());
}

请在我犯错的地方帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:0)

两种陈述都是一样的。

JSONArray ja2=js.getJSONArray("fieldsArray");
fields=new ArrayList<String>();
for(int i=0;i<ja2.length();i++){ 
   fields.add(ja2.getString(i)); // first 
   Log.d("crm", "retriving from json"+ja2.getString(i));
}
formdet.setArfields(fields);

for(int i=0;i<ja2.length();i++){ 
   fields.add(ja2.getString(i)); // second
   Log.d("crm", "retriving from array"+formdet.getArfields().get(i));
}
formdet.setFqndata(afqd);