BlazeDS到Flex移动反序列化时遇到问题,因此我尝试在每个Map中发送带有不同对象的地图列表List<Map<String, Object>>
,但是当我在flex代码中收到此列表时:
hastalarim = event.result as ArrayCollection;
但是当我在flex代码中调试它时,我看到该列表中有7个相同Object的实例(服务器端插入的第一个对象)。
这是我在服务器端的方法:
public List<Map<String, Object>> getHastalarim(String personelId, String servisId) {
List hastalar = karDAO.getHastalarim(personelId,servisId);
Map<String, Object> mp = new HashMap<String, Object>();
List<Map<String, Object>> lst = new ArrayList<Map<String,Object>>();
for (int i = 0; i < hastalar.size(); i++) {
Object[] obj = (Object[]) hastalar.get(i);
mp.clear();
mp.put("hastaId", (String) obj[0]);
mp.put("adi",(String) obj[1]);
mp.put("soyadi", (String) obj[2]);
mp.put("tckimlikNo", (String) obj[3]);
mp.put("yasi", (Integer) obj[4]);
mp.put("vizitTar", obj[5].toString());
mp.put("vizitId", (String) obj[6]);
mp.put("cinsiyeti", (String) obj[7]);
mp.put("resim", getHastaResim((String) obj[3]));
lst.add(mp);
}
return lst;
}
这里有什么问题?有什么建议吗?
答案 0 :(得分:0)
for (int i = 0; i < hastalar.size(); i++) {
Object[] obj = (Object[]) hastalar.get(i);
Map<String, Object> mp = new HashMap<String, Object>();
mp.put("hastaId", (String) obj[0]);
mp.put("adi",(String) obj[1]);
mp.put("soyadi", (String) obj[2]);
mp.put("tckimlikNo", (String) obj[3]);
mp.put("yasi", (Integer) obj[4]);
mp.put("vizitTar", obj[5].toString());
mp.put("vizitId", (String) obj[6]);
mp.put("cinsiyeti", (String) obj[7]);
mp.put("resim", getHastaResim((String) obj[3]));
lst.add(mp);
}
return lst;
}
创建导致问题的多个地图实例。