第一种:传两个string:
1.把json转成字符串JSON.stringify(resjson)
2.不要指定header为application/json 不写默认是application/x-www-form-urlencoded
3.后台用两个String加@RequestParam注解接收 然后再把json转换为map
代码:
/////////////AJAX
$.ajax(app.GlobalIP + '/show/addData', { data: { parameter: JSON.stringify(resjson), //json to string tablename: detailglobaltn //字符串 }, dataType: 'json', //服务器返回json格式数据 type: 'post', //HTTP请求类型 timeout: 10000, //超时时间设置为10秒; // headers: { 'Content-Type': 'application/json' }, //写上后后台需要添加RequestBody 接收到的为一整个对象 success: function (data) { console.log(JSON.stringify(data)); }, error: function (xhr, type, errorThrown) { //异常处理; console.log('ERROR********************' + type); } });
/////////////后台Controller public CommonResult addData(@RequestParam("parameter") String parameter, @RequestParam("tablename") String tablename){ //Map map = JSON.parseObject(parameter); Map<String,String> map = JSONObject.parseObject(parameter,new TypeReference<Map<String, String>>(){}); String s = map.get("ETIEM"); System.out.println(map); System.out.println(tablename); //...... return new CommonResult(200,"成功"); }
第二种:直接传对象套对象
1.resjson直接为js的json对象
2.加上headers
3.后台用一个Map加@RequestBody注解接收 类型为Map<Map<String,Object>>
代码:
////////////AJAX
$.ajax(app.GlobalIP + '/show/addData', { data: { parameter: resjson, //json tablename: detailglobaltn //字符串 }, dataType: 'json', //服务器返回json格式数据 type: 'post', //HTTP请求类型 timeout: 10000, //超时时间设置为10秒; headers: { 'Content-Type': 'application/json' }, //写上后后台需要添加RequestBody 接收到的为一整个对象 success: function (data) { console.log(JSON.stringify(data)); }, error: function (xhr, type, errorThrown) { //异常处理; console.log('ERROR********************' + type); } });
////////////后台Controller public CommonResult addData(@RequestBody Map map){ Object o = map.get("parameter"); Map parameter = JSON.parseObject(JSON.toJSONString(o)); //Map<String,String> map = JSON.parseObject(parameter,new TypeReference<Map<String, String>>(){}); String tablename = map.get("tablename").toString(); //...... return new CommonResult(200,"成功"); }