2012-04-16 94 views
0

我有一個BlazeDS到Flex的移動反序列化的問題,以便我嘗試發回地圖列表List<Map<String, Object>>與不同的對象在每個地圖,但是當我收到此列表的flex代碼:Flex的反序列化問題與地圖列表

hastalarim = event.result as ArrayCollection; 

但是,當我在flex代碼中調試時,我看到在該列表中有7個相同對象(在服務器端插入的第一個對象)的實例。

這是我在服務器端的方法:

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
 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; 
     } 

創建導致問題的多個映射實例。

+0

當然!你是對的!!!你從浪費時間中拯救了我!謝謝.. – 2012-04-16 10:56:42

+0

您的歡迎兄弟 – Triode 2012-04-16 10:59:24