jQuery ajax传递单个JSON对象到后台很容易,这里记录的是传递多个JSON对象组成的JSON数组到java 后台,并说明java如何解析JSON数组。

1、js代码

var relationArrays=new Array();
  //获取所有组的人员信息grid数据
  var allGrid= $(".userGrid");
  for(var i=0;i<allGrid.length;i++){
    var rows=$(allGrid[i]).datagrid("getRows");
    $.each(rows,function(i,item){
     relationArrays.push(item);
    })
   }
  
   $.ajax({
  type : "POST",
  url : '../projectController/addRelations',
  data:{"params":JSON.stringify(relationArrays)},
  dataType : 'json',
  cache : false,
  success : function(data) {
   alert(data.msg);
  }
 });

2、java代码

  @RequestMapping("/addRelations")
    public void addRelations(HttpServletRequest request,HttpServletResponse response, HttpSession session) {
     String jsonStr = request.getParameter("params");
     //存储需要insert的项目人员关系信息
     List<ProjectRelation> relationList=new ArrayList<ProjectRelation>();
  
     ProjectRelation relation=null;
     JSONArray jsonArray = JsonUtil.parseArray(jsonStr);
        for(Object ob : jsonArray){
            JSONObject jObject = (JSONObject) ob;
                relation=new ProjectRelation();
                relation.setProjectId(pId);
                relation.setChargemanId(jObject.getInteger("chargemanId"));
                relation.setGroupId(jObject.getInteger("groupId"));
                relation.setUserId(jObject.getInteger("userId"));
                relation.setProjectRole(jObject.getInteger("projectRole"));
                relationList.add(relation);
          }
     //先查询项目中所有已有人员信息,
     int result=projectServiceImpl.saveProjectRelations(relationList);
 
     HashMap<String, Object> map = new HashMap<String, Object>();
        try {
            if(result==jsonArray.size()){
                map.put("msg", "关联信息添加成功");
            }
            else {
                map.put("msg", "关联信息添加错误");
            }
            WriteJsonUtil.writejson(map, response);
        } catch (Exception e) {
            e.printStackTrace();
            map.put("msg", "关联信息添加错误");
            WriteJsonUtil.writejson(map, response);
        }
    }

3、JSONUtil代码

public static JSONArray parseArray(String text){
        JSONArray jsonArray=JSON.parseArray(text);
       
        return jsonArray;
    }

具体JsonUtil代码请从该链接下载http://files.cnblogs.com/files/DylanZ/JsonUtil.rar

jQuery ajax 传递JSON数组到Spring Controller的更多相关文章

  1. Spring MVC Controller与jquery ajax请求处理json

    在用 spring mvc 写应用的时候发现jquery传递的[json数组对象]参数后台接收不到,多订单的处理,ajax请求: "}]}]} $.ajax({ url : url, typ ...

  2. mvc jquery ajax传递数组null问题

    mvc jquery ajax传递数,  areaIds是个int数组.后台action用list<int>接收.当我想传空值时,先用null传递,结果action收到的AreaIds竟然 ...

  3. 用ajax传递json,返回前台的中文乱码问题

    java项目中用ajax传递json,返回前台时中文出现问号(乱码问题)的解决办法 首先看一下没有解决前的状态: 我用的框架是ssm,在springMVC中我配置了编码格式为utf-8,每个jsp页面 ...

  4. ASP.NET jquery ajax传递参数

    第一种:GET传递 前台 ajax   GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低 后台接收:Request.QueryString[“参数名字”]! 例如: func ...

  5. Ajax传递json数据简介和一个需要注意的小问题

    Ajax传递json数据 Ajax操作与json数据格式在实际中的运用十分广泛,本文为大家介绍一个两者相结合的小案例: 项目结构 我们新建一个Django项目,在里面创建一个名为app01的应用: p ...

  6. Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据、Ajax文件上传)

    form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multi ...

  7. jquery ajax返回json数据进行前后台交互实例

    jquery ajax返回json数据进行前后台交互实例 利用jquery中的ajax提交数据然后由网站后台来根据我们提交的数据返回json格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...

  8. boke例子: freermarker:在使用ajax传递json数据的时候多出冒号

    boke例子: freermarker:在使用ajax传递json数据的时候多出冒号 json数据是用JSON.stringify()格式化的数据,然后用ajax传递,发现数据多出一个冒号:, 后来度 ...

  9. Ajax--PHP+JQuery+Ajax解析json、XML数据、加载页面

    一.JQuery+Ajax用get.post方式提交和请求数据 知识要点: $('#userName').blur(function () { var txt = $(this).val(); $.a ...

随机推荐

  1. MyCat数据库中间件 - 分库

    MyCat MyCat用于解耦分布式数据库与java,比如分库分表以后,需要查询某条数据时,需要java根据需要查的数据先计算去哪个库查,然而有了Mycat就不用自己计算怎么存储,怎么查询了.MyCa ...

  2. SpringMVC配置三大组件

    1.组件扫描器 使用组件扫描器省去在spring容器配置每个Controller类的繁琐. 使用<context:component-scan>自动扫描标记@Controller的控制器类 ...

  3. 版本控制Git使用最佳实践

    总结版本控制Git的使用,应明确有哪些具体的场景 应用场景  紧急上线(hotfix)  功能开发(feature)  测试(dev/release)  生产(master) 紧急上线 4.git c ...

  4. Running Web API using Docker and Kubernetes

    Context As companies are continuously seeking ways to become more Agile and embracing DevOps culture ...

  5. tomcat9 点击bin目录下的startup.bat一闪而过

    我装的是tomcat9免安装版,jdk版本是11,之后去tomcat bin目录下点击startup.bat闪退(好吧,只有想办法解决了) 博客中的解决办法五花八门,什么环境变量没配好....不过都不 ...

  6. bzoj5358

    Problem A. 口算训练Input file: stdinOutput file: stdoutTime limit: 5 secondsMemory limit: 512 megabytes小 ...

  7. A - 敌兵布阵 HDU - 1166 线段树(多点修改当单点修改)

    线段树板子题练手用 #include<cstdio> using namespace std; ; int a[maxn],n; struct Node{ int l,r; long lo ...

  8. Spring03-AOP

    一. AOP介绍 1. Aop介绍 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编 ...

  9. 【XSY1528】azelso 概率&期望DP

    题目大意 有一条很长很长的路(出题人的套路),你在\(0\)位置,你要去\(h\)位置. ​ 路上有一些不同的位置上有敌人,你要和他战斗,你有\(p\)的概率赢.若你赢,则你可以走过去,否则你会死.还 ...

  10. Tomcat控制台总是打印日志问题的解决办法

    问题 使用gradle启动项目,在tomcat控制台中不停地打印perf4j性能日志,导致开发过程很卡很慢.明明修改了logback.xml配置文件,让它输出到log文件中,而不是控制台,但是不起作用 ...