使用Ajax传递JSON比较容易,但是如果要传递JSON数组,需要一点小技巧。
而且在实际开发中,当我们需要一次性保存多条记录的时候,表单通过表单提交比较麻烦,但是使用JSON数组来传递就比较方便了,下面看一个例子:
JS中提交请求:
/** * 保存会话阈值 */ save:function(){ var jsonArr = []; //待传递的JSON数组 for(var i=0;i<3;i++){//给JSON数组赋值 var id =...; var name = ...; var code = ...; jsonArr.push({"id":id,"name":name,"code":code}); } $.ajax({ url:...,data:{ arr:JSON.stringify(jsonArr)//将JSON数组转化为字符串,重要的一步 },success:function(e){ } }); }
控制层接收请求:
@RequestMapping("/save") public void save(@RequestParam Map<String,Object> param){ try { String jsonData = param.get("arr")==null?"":param.get("arr").toString(); jsonData=new String(jsonData.getBytes("ISO-8859-1"),"UTF-8"); List<SysConfig> list = JSONArray.parseArray(jsonData,SysConfig.class); service.save(list); } catch (Exception e) { logger.error(e.getMessage()); } }
这里对JSON的处理使用的是开源的Jar包:fastjson-1.2.3.jar