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. Mysql优化系列(1)--Innodb重要参数优化

    1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色 ...

  2. PHP从入门到精通(二)

     PHP从入门到精通 之PHP中的函数 各位开发者朋友大家好,自上次更新PHP的相关知识,得到了大家的广泛支持.PHP的火爆程度不言而喻,函数作为PHP中极为重要的部分,应诸位的支持,博主继续跟进更新 ...

  3. 路由嵌套 active

    http://www.jb51.net/article/102574.htm; https://segmentfault.com/q/1010000008950255 <el-menu :def ...

  4. iOS开发线程安全问题

    先来看一下代码: - (void)viewDidLoad { [super viewDidLoad]; self.testStr = @"String initial complete&qu ...

  5. NopCommerce源码架构

    我们承接以下nop相关的业务,欢迎联系我们. 我们承接NopCommerce定制个性化开发: Nopcommerce二次开发 Nopcommerce主题开发 基于Nopcommerce的二次开发的电子 ...

  6. ModSecurity is an open source, cross-platform web application firewall (WAF) module.

    http://www.modsecurity.org/ ModSecurity is an open source, cross-platform web application firewall ( ...

  7. jQuery empty() vs remove()

    https://stackoverflow.com/questions/3090662/jquery-empty-vs-remove http://www.cnblogs.com/yeer/archi ...

  8. SyntaxHighlighter行号显示错误问题解决方案

    SyntaxHighlighter是根据代码中的换行符分配行号的.但是,如果一行代码或者注释比较长,在页面显示时需要分成多行显示,会出现行号对不上的问题,像这样: 通过设置CSS强制不换行,可以保证行 ...

  9. ASP.NET MVC4学习笔记

    一.MVC简介

  10. Sqlite,libevent,openssl,mosquito交叉编译

    一.设置交叉编译环境 在makefile所在目录(或源代码根目录)打开终端. 在终端中设置交叉编译所需的临时环境变量(也可写到配置文件中设置为全局环境变量),其中交叉编译工具链的名称和目录需要根据实际 ...