Java JSON地图<;字符串,ArrayList>;数据未转换为restful中的bean对象
有一个Ajax调用,其中包含字符串、数组和映射的JSON数据。在jersey中将字符串和数组数据转换为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
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) {
}
}