0

List<Map<String, Object>>BlazeDS から Flex へのモバイル デシリアライゼーションに問題があるため、マップごとに異なるオブジェクトを持つマップのリストを送り返そうとしましたが、フレックス コードでこのリストを受信すると、次のようになります。

hastalarim  = event.result as ArrayCollection;

しかし、フレックス コードでこれをデバッグすると、そのリストに同じオブジェクト (サーバー側で挿入された最初のオブジェクト) の 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;
}

ここで何が問題なのですか?助言がありますか?

4

1 に答える 1

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

問題の原因となっているマップの複数のインスタンスを作成します。

于 2012-04-16T10:48:30.513 に答える