$("#btn").click(function(){
var data={
header:{appId:'erghege',secret:'gergergeg'},
user:{name:'jery',pasword:'1132332'}
}
$.ajax({
url:"testjson.spring",
data:data,
dataType:"json",
contentType:"application/json",
success:function(){
}
});
我封装了一个类
public class Meta {
private User user;
private Header header;
//......
}
@RequestMapping("/testjson")
@ResponseBody
public Map logout(Meta meta){
Map map = new HashMap();
map.put("status", "1");
return map;
}
让Meta 接收前台传递过来的 json,报Invalid property 'header[appId]' of bean class [com.test.Meta]: Property referenced in indexed property path 'header[appId]' is neither an array nor a List nor a Map; returned value was [erghege]
有什么方法解决一下么
把data用json.stringify方法转化,再给后台方法接受的类前加上@requestBody
var data={
header:{appId:'erghege',secret:'gergergeg'},
user:{name:'jery',pasword:'1132332'}
}
var data={};
var header={};
var user={};
user.name='jery';
user.pasword='1132332';
header.appId='erghege';
header.secret='gergergeg';
data.header=header;
data.user=user;
参数这样搞,然后ajax请求dataType:"json",
contentType:"application/json",这两句去掉试试
@RequestMapping("/testjson")
@ResponseBody
public Map logout(Meta meta){
Map map = new HashMap();
map.put("status", "1");
return map;
}
修改为:
@RequestMapping("/testjson")
@ResponseBody
public Map logout(@RequestBody Map datas){
//这里对json的解悉
JSONObject req_json = (JSONObject)JSONObject.toJSON(datas);
Map map = new HashMap();
map.put("status", "1");
return map;
}