spring MVC 如何接收前台传入的JSON对象数组并处理
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:
1 //T是随便定义的泛型,你根据自己需要自己定义类型
2 //doList是json类型字符串
3 public List<T> doList(String doList){
4 JSONArray jsonArray=JSONArray.fromObject(doList);
5 List<T> list=(List)JSONArray.toCollection(jsonArray,T.class);
6 return list;
7 }
迭代json数组:
1 Iterator<Object> it = jsonArray.iterator();
2 while (it.hasNext()) {
3 JSONObject ob = (JSONObject) it.next();
4 }
------
------
具体代码:
js代码:
1 function submitUserList() {
2 alert("ok");
3 var customerArray = new Array();
4 customerArray.push({id: "1", name: "李四", pwd: "123"});
5 customerArray.push({id: "2", name: "张三", pwd: "332"});
6
7 $.ajax({
8 url: "/user/submitUserList_3",
9 type: "POST",
10 dataType:"json",
11 data: {
12 //"doList":JSON.stringify(customerArray), //将Json对象序列化成Json字符串,JSON.stringify()原生态方法
13 "doList":$.toJSON(customerArray)
14 }, //将Json对象序列化成Json字符串,toJSON()需要引用jquery.json.min.js
15 success: function(data){
16 },
17 error: function(res){
18 alert(res.responseText);
19 }
20 });
21 }
java代码:
方法一:
1 ///若接收的参数可以被封装到javabean对象中则可以如下写:
2 public List < User> doList(String doList) {
3 //先把字符串转成JSONArray
4 JSONArray jsonArray = JSONArray.fromObject(doList);
5 //再把jsonArray转成对象集合
6 List < User > list = (List) JSONArray.toCollection(jsonArray, User.class);
7 return list;
8 }
9
--------
方法二:
1 ///若接收的参数不方便被封装到java对象中,则可以用下面方式获取
2 public List < User> doList(String doList) {
3 //先把字符串转成JSONArray
4 JSONArray jsonArray = JSONArray.fromObject(doList);
5 //迭代jsonArray
6 Iterator<Object> it = jsonArray.iterator();
7 List<User> list=new ArrayList<User>();
8 while (it.hasNext()) {
9 JSONObject ob = (JSONObject) it.next();//取到每个JSONObject对象
10 User user = null;
11 if(ob.getString("id")!=null){//调用JSONObject的getString("属性")方法获取对应值
12 user=new User();
13 user.setId(ob.getString("id"));
14 }
15 if(ob.getString("name")!=null){
16 user.setName(ob.getString("name"));
17 }
18 if(user!=null){
19 list.add(user);
20 }
21 }
22 return list;
23 }
----------------------
下面是一些json和java对象之间的操作,参考:
JSON 字符串 与 java 对象的转换 1. 把java 对象列表转换为json对象数组,并转为字符串 JSONArray array = JSONArray.fromObject(list);
String jsonstr = array.toString(); 2. 把java对象转换成json对象,并转化为字符串 JSONObject object = JSONObject.fromObject(user);
Log4jInit.ysulogger.debug(object.toString()); 3.把JSON字符串转换为JAVA 对象数组
JSONArray json = JSONArray.fromObject(userStr);//userStr是json字符串
List<User> users= (List<User>)JSONArray.toCollection(json, User.class); 4.把JSON字符串转换为JAVA 对象 JSONObject jsonobject = JSONObject.fromObject(jsonStr);
User user= (User)JSONObject.toBean(object,User.class);
spring MVC 如何接收前台传入的JSON对象数组并处理的更多相关文章
- spring MVC 如何接收前台传入的JSON对象数组
spring MVC 如何接收前台传入的JSON对象数组 主要方法: (主要用到的包是 net.sf.json 即:json-lib-2.3-jdk15.jar 完整相关jar包: commons- ...
- Spring MVC同时接收一个对象与List集合对象
原:https://blog.csdn.net/u011781521/article/details/77586688/ Spring MVC同时接收一个对象与List集合对象 2017年08月25日 ...
- 后台接收前台传入的json 数据
引入JSONArray的类型为org.json而不是net.sf.json,笔者开始引入的是net.sf.json.JSONArray, 但JSONObject.fromObject(obj)时报错报 ...
- Spring MVC Controller与jquery ajax请求处理json
在用 spring mvc 写应用的时候发现jquery传递的[json数组对象]参数后台接收不到,多订单的处理,ajax请求: "}]}]} $.ajax({ url : url, typ ...
- Spring MVC在接收复杂集合参数
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是applica ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装
阅读目录 1. 通过HttpServletRequest获得请求参数和数据 2. 处理方法形参名==请求参数名 3. 如果形参名跟请求参数名不一样怎么办呢?用@RequestParam注解 4. 用实 ...
- 0056 Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装
浏览器总会向服务器传递一些参数,那么Spring MVC如何接收这些参数? 先写个简单的html,向服务器传递一些书籍信息,如下: <!DOCTYPE html> <html> ...
- 解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容
解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容 解决方案 在 Web.xml文件中 加入以下代码 <!--解决ajax Put与Del请求无法接收到传输的内容-- ...
随机推荐
- python web需要了解哪些
1. socket.tcp/ip.http(cookie.session.token).https.ssl 2. wsgi:https://www.python.org/dev/peps/pep-33 ...
- QTP 自动货测试桌面程序-笔记-运行结果中添加截图
3种方法: 方法1:使用设置:SnapshotReportMode oldMode = Setting("SnapshotReportMode") Setting("Sn ...
- qtp 自动化测试桌面程序-点滴1(录制设置、共用文件)
1 automation-record and run settings--设置录制程序 2 将function/repository 放于单独于test的文件夹中-方便多个test使用同一个仓库.函 ...
- Socket初见
前端代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <t ...
- django--orm表自关联详解
什么是表内自关联 表内自关联是指表内数据相关联的对象和表是相同字段,这样我们就直接用表内关联将外键关联设置成自身表的字段.同样表内关联也分一对多字段和多对多字段 例如:对于微博评论,每条评论都可能有子 ...
- 了解AutoCAD对象层次结构 —— 1 ——应用程序
想象这样一个场景:当您开始一天的工作,坐到电脑前面,用鼠标双击桌面上的AutoCAD Civil 3D图标,这时一个AutoCAD Civil 3D应用程序将运行起来.打开Windows任务管理器,我 ...
- python之旅六【第七篇】面向对象
面向对象三大特性 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强... 面向对象编程 ...
- HTML协议
一,HTML协议 简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数据通信的 ...
- MySQL 报错 1055
具体报错 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'exer.student.sid' w ...
- 使用 dmidecode 查看Linux服务器信息
使用 dmidecode 查看Linux服务器信息 来源 http://www.laozuo.org/6682.html 对于大部分普通服务器用户来说,我们选择VPS.服务器产品的时候比较关心的是产 ...