java - JSON Map<String,ArrayList> 数据未转换为 Restful jersey 中的 bean 对象

标签 java json spring rest jersey

有一个 Ajax 调用,其中包含 String、Array 和 Map 的 JSON 数据。在转换为 Jersey 中的 DashboardChartData (Bean 类)后,我能够获取字符串和数组数据,但无法获取 map 值。 假设 bean 是 DashboardChartData 的对象,globalInFilters 是 DashboardChartData 类的数据成员,然后设置 setter/getter 相同 bean.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);
                }
                        });
            }    

我创建了 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 的值。

最佳答案

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

关于java - JSON Map<String,ArrayList> 数据未转换为 Restful jersey 中的 bean 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43973799/

相关文章:

java - 带有 Java 8 Streams 的 Spring Data JPA 存储库

java - Spring MVC;测试重定向是否是相对的

java - 将 MapReduce 输出拆分为多个输出文件

使用 REGEX 和 .split() 的 Java XML validator

javascript - 如何搜索和过滤大型数据集(JSON/AngularJS)

java - Gson反序列化具有不同值类型的json

java - c3p0 中的默认连接池大小是多少

java - 如何以编程方式激活子页面?

ios - 在 Swift 中使用 Google Places API 从 JSON 数据创建对象

java - Spring、Hibernate 检查我的 Maven Shade JAR 中的每个 jar