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学习笔记(11)--数据组织的维度
数据的操作周期 存储 -- 表示 -- 操作 一维数据表示 如果数据有序,可以使用列表[]:如果数据没有顺序,可以使用集合{} 一维数组存储 存储方式一:空格分隔 ,使用一个或多个空格分隔进行分隔, ...
- 10.Service资源发现
Kubernetes Pods是不可控的.每当一个pod停止后,他不是重启,而是重建.ReplicaSets特别是Pods动态地创建和销毁(例如,当向外扩展或向内扩展时).虽然每个PodIP地址都有自 ...
- mesh函数
[t,W]=meshgrid([2:0.2:7],[0:pi/6:3*pi]); %设置时-频相平面网格点 Gs1=(1/(sqrt(2*pi)*a))*exp(-0.5*abs((t1-t)/a). ...
- Nginx 对上游使用SSL链接
L96 双向认证SSL指令示列 对下游使用证书指令 Syntax: ssl_certificate file; Default: — Context: http, server Syntax: ssl ...
- Linux系统下手把手完成无人值守安装服务
刚入职的运维新手经常会被要求去做一些安装操作系统的工作,如果按照用镜像光盘安装操作系统,效率会相当低下.那么如何提升效率,搭建出一套可以批量安装Linux系统的无人值守的安装系统? PXE+TFTP+ ...
- python爬虫requests模块
requests库的七个主要方法 1. requests.requests(method, url, **kwargs) 构造一个请求,支撑以下各方法的基础方法 method:请求方式,对应get/p ...
- kubernetes Helm基本操作
创建: helm install --name demo --set Persistence.Enabled=false stable/jenkins 查看: kubectl get po,svc - ...
- 洛谷P1226 【模板】快速幂||取余运算
题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出“b^p mod k=s” s为运算结果 S1: ...
- 【XSY2759】coin DP 线性插值
题目描述 有\(n\)种面值不同的硬币,每种有无限个,且任意两个\((x,y)\)要么\(x\)是\(y\)的倍数,要么\(y\)是\(x\)的倍数. 你要取\(m\)元钱,问你有多少种不同的取法. ...
- 【BZOJ3379】【USACO2004】交作业 区间DP
题目描述 数轴上有\(n\)个点,你要从位置\(0\)去位置\(B\),你每秒钟可以移动\(1\)单位.还有\(m\)个限制,每个限制\((x,y)\)表示你要在第\(t\)秒之后(可以是第\(t\) ...