2013-07-16 3 views
1

저는 온라인 크레딧 보충 애플리케이션에서 작업하고 있습니다. 지금 내가 선택한 교부의 특정 유형에 사용할 교파를 가져오고 싶습니다. 이것은 시나리오입니다 사용자가 콤보 상자에서 바우처 유형 (tigo, mtn, vodafon, airtel 등)을 선택합니다. 쿠폰 종류 콤보 상자는 사용 가능한 모든 상품 종류로 채워 져야합니다. 지금이 코드를 시도 .av JSON에 넣어 밖으로 생각하지만이 반환데이터베이스 테이블에서 데이터 가져 오기

@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 번만 표시해야한다는 것입니다 반환 . 내가 JSONArray 객체가 contains(JSONObject obj) 기능을 가지고 있다고 생각하지 않습니다 사전

+0

'voucherController.getTypDenominationAvailable (vouchertypeId)'의 기능은 무엇입니까? 5 장의 상품권을 돌려주는 것처럼 보입니다. –

+0

예 ... 정확히 ... –

답변

0

에 this..tanx하는 데 도움이 필요하지만 당신은 하나의 자신을 (AN example이 링크를 참조) 할 수 있습니다. 이것을 사용하여 각 루프를 작성한 후 JSONObject을 작성한 후 JSONArray에 오브젝트가 들어 있는지 확인하십시오. 그렇지 않으면 추가하십시오. 그렇지 않으면 추가하지 마십시오. 이것은 가장 우아한 해결책은 아니지만 작동해야합니다.

+0

aryt이 시도해 보겠습니다. –

+0

괜찮음, 좋은 소리 – Scott

+0

안녕하세요 스카우트 ...이 메서드를 생성하고이를 getDenominationByType() 메서드라고 부릅니다. public boolean denominationExists (JSONArray theJSONArray , BigDecimal 명칭) { return theJSONArray.toString(). contains ("\"\ ": \" "+ 종파 +"\ ""); } –

관련 문제