2012-04-16 9 views
0

BlazeDSとFlexのモバイルデシリアライゼーションに問題があります。そのため、すべてのマップで異なるオブジェクトのマップList<Map<String, Object>>を返信しようとしますが、フレックスコードでこのリストを受け取ったとき:マップのリストの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

もちろん!あなたが正しい!!!あなたは時間の無駄から私を救った!ありがとう.. –

+0

あなたの歓迎仲間 – Triode

関連する問題