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请求无法接收到传输的内容-- ...
随机推荐
- 使用PHP对二维索引数组进行排序
本例中 data 数组中的每个单元表示一个表中的一行.这是典型的数据库记录的数据集合. 例子中的数据如下: volume | edition -------+-------- 67 | 2 86 | ...
- Ajax之Jquery封装使用举例
<html> <head> <meta charset="UTF-8"> <title>登陆页面</title> < ...
- MIUI(ADUI)关闭广告推送步骤方法
MIUI自从到了版本MIUI8之后,系统增加了各种推送,让人们所诟病.很多消费者因为这个原因,不再考虑小米手机,尽管小米手机确实很便宜. 下面就说一下如何关闭所有的MIUI 8的广告推送.方法源自MI ...
- How to convert mkv to mp4 lossless
ffmpeg -i example.mkv -vcodec copy -acodec copy example.mp4
- Windows & RabbitMQ:Shovel
RabbitMQ的集群和高可用不适合跨域的情况,如果跨域可以使用Shovel或Federation. 描述:我们需要配置三台服务器:ServerA, ServerB, ServerC Step 1:安 ...
- 【python练习题】程序13
#题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153= ...
- reshape
reshape 编辑 reshape是一种函数,函数可以重新调整矩阵的行数.列数.维数.在matlab命令窗口中键入doc reshape或help reshape即可获得该函数的帮助信息. B = ...
- CABAC总结与补充讨论
在之前的一篇文章CABAC中我们已经对算法中的大部分细节部分做了详细分析,这里做一个总结与拾遗. 总结 CABAC的编码可以分为以下四个部分: 上下文变量的初始化 待编码语法元素二值化 上下文建模(确 ...
- ffmpeg 转码命令与ffplay
ffmpeg.exe用于视频的转码. ▫ 最简单的命令 ffmpeg -i input.avi -b:v 640k output.ts 该命令将当前文件夹下的input.avi文件转换为output. ...
- AtCoder Regular Contest 102 E Stop. Otherwise...
题目链接:atcoder 大意:有\(n\)个骰子,每个骰子上面有\(k\)个数,分别是\(1\text ~ k\),现在求\(\forall i\in[2...2k]\),求出有多少种骰子点数的组合 ...