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对象数组并处理的更多相关文章

  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. Springmvc架构

    框架结构如下图: 架构流程: 1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器. 3.处理器映 ...

  2. RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptool

    setuptool 太老了,更新下: pip install --upgrade setuptools

  3. python 网络编程 IO多路复用之epoll

    python网络编程——IO多路复用之epoll 1.内核EPOLL模型讲解     此部分参考http://blog.csdn.net/mango_song/article/details/4264 ...

  4. How to enable AHCI on Windows7

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci

  5. Error:Failed to resolve: com.android.support:appcompat-v7

    repositories { maven { url "https://maven.google.com" } } implementation 'com.android.supp ...

  6. controller层负责创建类传递类给service;service层负责逻辑编写调用dao层 将编写后的类传递到dao层,保证事务的正确性;dao层负责数据的持久化

    controller层负责创建类传递类给service:service层负责逻辑编写调用dao层 将编写后的类传递到dao层,保证事务的正确性:dao层负责数据的持久化

  7. codeforces478C

    Table Decorations CodeForces - 478C 你有r个红的,g个绿的和b个蓝的气球.要为宴会布置一张桌子,你恰好需要三个气球.附在桌子上的三个气球不应该有相同的颜色.如果我们 ...

  8. Django models中关于blank与null的补充说明

    Django models中关于blank与null的补充说明 建立一个简易Model class Person(models.Model): GENDER_CHOICES=( (1,'Male'), ...

  9. Android PowerManager电源管理(Android N )

    ./frameworks/base/core/java/android/os/PowerManager.java该类提供给Application访问电源相关接口. 它的内部类WakeLock是定义的唤 ...

  10. 关闭VS2017脚本调试 已启用 Visual Studio 中的 Chrome 脚本调试

    转载:https://blog.csdn.net/lilinoscar/article/details/79114721 每当调试项目时,都是重新打开一个浏览器窗口,而且关闭调试后,也会关闭窗口,很麻 ...