2013-07-16 238 views
1

我正在使用在線貸方充值應用程序。現在我想獲取可用於特定類型憑證的面額,該憑證是通過選擇的。這是場景 用戶從組合框中選擇了憑證類型(tigo,mtn,vodafon,airtel等)。在選擇之後憑證面額組合框應填入所有可用的面值。對於現在出使用JSON .av與此代碼試圖把但是它返回此:從數據庫表中獲取數據

@RequestMapping(value = "/rest/getdenominations") 
     public @ResponseBody 
     String getDenominationByType(ModelMap model) throws JSONException { 
      Long vouchertypeId = 1L; 
      JSONArray typeDenominationsArray = new JSONArray(); 
      for (Voucher voucher : voucherController.getTypDenominationAvailable(vouchertypeId)) { 
       JSONObject voucherJSON = new JSONObject(); 
       voucherJSON.put(" ", voucher.getDenomination()); 
       typeDenominationsArray.put(voucherJSON); 
      } 

      return typeDenominationsArray.toString(); 
     } 

但它返回這個

[{" ":10},{" ":2},{" ":1},{" ":10},{" ":2}] 

我想要的是,2和10應該只顯示一次。 需要幫助提前

+0

'voucherController.getTypDenominationAvailable(vouchertypeId)'做了什麼?似乎返回這5個「優惠券」。 –

+0

是的... –

回答

0

到this..tanx我不認爲JSONArray對象有一個contains(JSONObject obj)功能,但你可以自己做一個(請參閱此鏈接的example)。有了這個,在創建每個JSONObject之後的for循環中檢查您的JSONArray是否包含該對象。如果沒有,添加它,否則不要添加它。這不是最優雅的解決方案,但它應該起作用。

+0

aryt會嘗試這個nd讓我們結果 –

+0

好吧,聽起來不錯 – Scott

+0

嗨偵察兵...我創建了這個方法,並將其稱爲我的getDenominationByType()方法.... public boolean denominationExists(JSONArray theJSONArray ,BigDecimal面額){ return theJSONArray.toString()。contains(「\」\「:\」「+ denomination +」\「」); } –