2017-05-15 1 views
1

String、Array、MapのJSONデータを持つAjax呼び出しがあります。私は、ジャージーでDashboardChartData(Beanクラス)に変換した後、文字列と配列のデータを取得できましたが、マップ値を取得できませんでした。 beanがDashboardChartDataのオブジェクトで、globalInFiltersがDashboardChartDataクラスのデータメンバーであり、setter/getterを同じにしたとします。 bean.getGlobalInFilters();目的の値ではなくヌルを取得しています。JSON Map <String、ArrayList>データが安らかなジャージーのBeanオブジェクトに変換されない

コードは次のとおりです。

 function demo(){ 
      var dashbord = { 
      "aoId": "M_AO_918", 
      "viewBys": ["Brand", "Category", "State"], 
      "viewIds": ["615228", "615128", "614847"], 
      "dimensions": ["615228"], 
      "aggregation": ["SUM", "SUM", "SUM", "SUM", "SUM", "SUM"], 
      "meassures": ["Gross Sales", "Net Sales", "Discount Amt", "Discount%", "Net Margin Amt", "Gross Margin Amt"], 
      "meassureIds": ["616275", "616283", "616279", "616648", "616295", "616303"], 
      "globalInFilters": {"615228": ["Lenovo", "Apple"]} 
         }; 

         $("#query").html(JSON.stringify(dashbord)); 
         $.ajax({ 
          type: "POST", 
          contentType: "application/json; charSet=UTF-8", 
          dataType: "json", 
          data: JSON.stringify(dashbord), 
          url: "<%=request.getContextPath()%>/webresources/solrservice/test1", 
          success: function(data, textStatus, jqXHR){ 
        alert('Bean created successfully'); 

       }, 
       error: function(jqXHR, textStatus, errorThrown){ 
        alert('Bean error: ' + textStatus); 
       } 
         }); 
      }  

Iを含む上記パラメータでDashboardChartDataクラスを作成しました:

private Map<String, List<String>> globalInFilters; 

    public Map<String, List<String>> getGlobalInFilters() { 
     return globalInFilters; 
    } 

    public void setGlobalInFilters(Map<String, List<String>> globalInFilters) { 
     this.globalInFilters = globalInFilters; 
    } 


     @Path("/test1") 
      @POST 
      @Consumes(MediaType.APPLICATION_JSON) 
      @Produces(MediaType.APPLICATION_JSON) 
      public void setData1(DashboardChartDataBean bean) throws Exception { 
       bean.getGlobalInFilters(); //getting null 
       ProgenSolrDao daoObj = new ProgenSolrDao(); 

       try { 
        QueryResponse response = daoObj.executeSolrQuery("city",bean); 
       } catch (Exception e) { 

       } 

      } 

bean.getGlobalInFilters()は、この他のすべての値を微なっている以外、nullを取得します。私がglobalInFiltersの値を得る方法を手伝ってください。

+0

私はこれがhttp://stackoverflow.com/questions/8413608/sending-list-map-as-post-parameter-jerseyがあなたに役立つと思います。 –

答えて

0

なぜあなたはそれを送る前にストリングしていますか? stringifyせずに試してみてください。

+0

それ以外の場合は、そのリソースメソッド 'test1'を呼び出す必要はありません – Ram

+0

次に、REST APIに@Consumes( "application/json")を追加し、 – DineshPandian

+0

を試してください@Consumes( "application/json")もnull – Ram

関連する問題