spring MVC 如何接收前台传入的JSON对象数组

主要方法:

(主要用到的包是 net.sf.json  即:json-lib-2.3-jdk15.jar

完整相关jar包:

commons-beanutils-1.7.0.jar
commons-collections-3.2.jar

commons-lang-2.4.jar

commons-logging-1.1.jar

ezmorph-1.0.4.jar

json-lib-2.2.2-jdk15.jar)

转换JSONArray json数组为实体类的List:

 //T是随便定义的泛型,你根据自己需要自己定义类型
//doList是json类型字符串
public List<T> doList(String doList){ 
  JSONArray jsonArray=JSONArray.fromObject(doList);
  List<T> list=(List)JSONArray.toCollection(jsonArray,T.class);
  return list;
}

迭代json数组:

 Iterator<Object> it = jsonArray.iterator();
while (it.hasNext()) {
  JSONObject ob = (JSONObject) it.next();
}

------

------

具体代码:

js代码:

 function submitUserList() {
alert("ok");
var customerArray = new Array();
customerArray.push({id: "1", name: "李四", pwd: "123"});
customerArray.push({id: "2", name: "张三", pwd: "332"}); $.ajax({
url: "/user/submitUserList_3",
type: "POST",
dataType:"json",
data: {
//"doList":JSON.stringify(customerArray), //将Json对象序列化成Json字符串,JSON.stringify()原生态方法
"doList":$.toJSON(customerArray)
}, //将Json对象序列化成Json字符串,toJSON()需要引用jquery.json.min.js
success: function(data){
},
error: function(res){
alert(res.responseText);
}
});
}

java代码:

方法一:

 ///若接收的参数可以被封装到javabean对象中则可以如下写:
public List < User> doList(String doList) {
//先把字符串转成JSONArray
JSONArray jsonArray = JSONArray.fromObject(doList);
//再把jsonArray转成对象集合
List < User > list = (List) JSONArray.toCollection(jsonArray, User.class);
return list;
}

--------

方法二:

 ///若接收的参数不方便被封装到java对象中,则可以用下面方式获取
public List < User> doList(String doList) {
//先把字符串转成JSONArray
JSONArray jsonArray = JSONArray.fromObject(doList);
//迭代jsonArray
Iterator<Object> it = jsonArray.iterator();
List<User> list=new ArrayList<User>();
while (it.hasNext()) {
JSONObject ob = (JSONObject) it.next();//取到每个JSONObject对象
User user = null;
if(ob.getString("id")!=null){//调用JSONObject的getString("属性")方法获取对应值
user=new User();
user.setId(ob.getString("id"));
}
if(ob.getString("name")!=null){
user.setName(ob.getString("name"));
}
if(user!=null){
list.add(user);
}
}
return list;
}

spring MVC 如何接收前台传入的JSON对象数组的更多相关文章

  1. spring MVC 如何接收前台传入的JSON对象数组并处理

    spring MVC 如何接收前台传入的JSON对象数组 主要方法: (主要用到的包是 net.sf.json  即:json-lib-2.3-jdk15.jar 完整相关jar包: commons- ...

  2. Spring MVC同时接收一个对象与List集合对象

    原:https://blog.csdn.net/u011781521/article/details/77586688/ Spring MVC同时接收一个对象与List集合对象 2017年08月25日 ...

  3. 后台接收前台传入的json 数据

    引入JSONArray的类型为org.json而不是net.sf.json,笔者开始引入的是net.sf.json.JSONArray, 但JSONObject.fromObject(obj)时报错报 ...

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

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

  5. Spring MVC在接收复杂集合参数

    Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是applica ...

  6. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  7. Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装

    阅读目录 1. 通过HttpServletRequest获得请求参数和数据 2. 处理方法形参名==请求参数名 3. 如果形参名跟请求参数名不一样怎么办呢?用@RequestParam注解 4. 用实 ...

  8. 0056 Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装

    浏览器总会向服务器传递一些参数,那么Spring MVC如何接收这些参数? 先写个简单的html,向服务器传递一些书籍信息,如下: <!DOCTYPE html> <html> ...

  9. 解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容

    解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容 解决方案 在 Web.xml文件中 加入以下代码 <!--解决ajax Put与Del请求无法接收到传输的内容-- ...

随机推荐

  1. Centos下MooseFS(MFS)分布式存储共享环境部署记录

    分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统的实际基于客户机/服务器模式.目前 ...

  2. 20135337——Linux实践三:程序破解

    程序破解 查看 运行 反汇编,查看汇编码 对反汇编代码进行分析: 在main函数的汇编代码中可以看出程序在调用"scanf"函数请求输入之后,对 [esp+0x1c] 和 [esp ...

  3. github个人心得和链接

    github使用心得: 在本次github使用过程中,我总结了git常用命令,都有哪些功能? git常用命令: git config :配置git git add:更新working director ...

  4. 第一阶段,第二阶段,第三阶段团队github更新项目地址

    第一阶段:https://github.com/yuhancheng/stage-1--last-sprint 第二阶段:https://github.com/yuhancheng/stage-2-- ...

  5. 『编程题全队』Beata阶段项目复审

    小组的名字和链接 优点 缺点,bug 报告(部分包括建议) 最终名次 想不出队名 1. 界面简洁大方2. 有搜索功能 1. 已经完成的活动缺了点提示界面2. 似乎界面有一点点卡顿目标实现:基本实现找到 ...

  6. Java的常用命令javac与java

    javac 可以使用javac -h来查看常用的命令: -> ~ # javac -help 用法: javac <options> <source files> 其中, ...

  7. Spring事务银行转账示例

    https://www.imooc.com/video/9331 声明式事务 @Transactiona() 编程式事务 非模板式(不使用TransactionTemplate) http://cai ...

  8. Java Date Compare

    Date a;Date b;假设现在你已经实例化了a和ba.after(b)返回一个boolean,如果a的时间在b之后(不包括等于)返回true b.before(a)返回一个boolean,如果b ...

  9. Docker(十四)-Docker四种网络模式

    Docker 安装时会自动在 host 上创建三个网络,我们可用 docker network ls 命令查看: none模式,使用--net=none指定,该模式关闭了容器的网络功能. host模式 ...

  10. linux_软件安装

    一.在线安装(apt) APT是Advance Packaging Tool(高级包装工具)的缩写,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,简化了Unix系统上管理软件的过程. 1 ...