Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSON地图<;字符串,ArrayList>;数据未转换为restful中的bean对象_Java_Json_Spring_Rest_Jersey - Fatal编程技术网

Java JSON地图<;字符串,ArrayList>;数据未转换为restful中的bean对象

Java JSON地图<;字符串,ArrayList>;数据未转换为restful中的bean对象,java,json,spring,rest,jersey,Java,Json,Spring,Rest,Jersey,有一个Ajax调用,其中包含字符串、数组和映射的JSON数据。在jersey中将字符串和数组数据转换为DashboardChartData(一个Bean类)后,我能够获取字符串和数组数据,但无法获取映射值。 假设bean是DashboardChartData的对象,GlobalFilters是DashboardChartData类的数据成员,并使setter/getter与之相同 getGlobalInFilters();正在获取null而不是所需的值 代码是: function

有一个Ajax调用,其中包含字符串、数组和映射的JSON数据。在jersey中将字符串和数组数据转换为
DashboardChartData
(一个Bean类)后,我能够获取字符串和数组数据,但无法获取映射值。 假设bean是
DashboardChartData
的对象,GlobalFilters是DashboardChartData类的数据成员,并使setter/getter与之相同 getGlobalInFilters();正在获取null而不是所需的值

代码是:

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

bean.getGlobalInFilters()
获取
null
,除此之外,所有其他值都变得很好。请帮助我如何获取
globalInFilters

的值,为什么在发送之前要进行字符串化。尝试不使用字符串化。

为什么在发送之前要进行字符串化。尝试不使用stringify。

需要它,否则它不会调用资源方法“test1”,然后在REST Api中添加@Consumes(“应用程序/json”),并try@Consumes(“application/json”)也不起作用,仍然需要获取null,否则它不会调用资源方法“test1”,然后添加@Consumes(“application/json”)在RESTAPI和try@Consumes(“application/json”)也不起作用,但仍然会变为null。我认为这对您有帮助。我认为这对您有帮助。
    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) {

                }

            }