博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC参数绑定JSON类型的数据
阅读量:4599 次
发布时间:2019-06-09

本文共 3166 字,大约阅读时间需要 10 分钟。

需求就是:

现在保存一个Student,并且保存Student的friend,一个student会有多个朋友,这里要传递到后台的参数是:

var friends = new Array();    var o1 = {        "family": "大宅门",        "otherName": "lisi",        "desc": "亲密无间的好朋友"    }    var o2 = {        "family": "军大院",        "otherName": "wangwu",        "desc": "关系一般"    }    friends.push(o1);    friends.push(o2);//要传递的参数:id=1 name=zhangsan age=10是要保存的student信息,并且friends是student的朋友信息;data:{            "id": 1,            "name": "zhangsan",            "age": 10,            "friends":friends        },

 

一、包装类型来接收JSON类型的传参:                                                                                           

方法一其实就是  中接收json数据;只不过包装了另一个po

前台代码,ajax传递数据:

Controller中接受这个参数:

/**     * 保存朋友     */    @RequestMapping("/saveStudent")    @ResponseBody    public void saveStudent(@RequestBody StudendAndFriend studendAndFriend){        System.out.println("接收参数friends--->> " + studendAndFriend);    }

接收参数的包装类:

StudendAndFriend.java:

package com.cy.po;import java.util.List;/** * 接收参数包装类 * @author chengyu * */public class StudendAndFriend {    private int id;    private String name;    private int age;    private List
friends; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public List
getFriends() { return friends; } public void setFriends(List
friends) { this.friends = friends; } }
View Code

Friend.java:

package com.cy.po;public class Friend {    private String family;    private String otherName;    private String desc;            public String getFamily() {        return family;    }    public void setFamily(String family) {        this.family = family;    }    public String getOtherName() {        return otherName;    }    public void setOtherName(String otherName) {        this.otherName = otherName;    }    public String getDesc() {        return desc;    }    public void setDesc(String desc) {        this.desc = desc;    }        @Override    public String toString() {        return "Friend [family=" + family + ", otherName=" + otherName                + ", desc=" + desc + "]";    }    }
View Code

后台成功接收参:

注意点:

ajax传参:

contentType:'application/json;charset=utf-8'; //contentType为application/json

data: JSON.stringify(params),           //传的是字符串;

 

 

方法二、                                              

传递String类型的json字符串过来,后台接收后,进行JSONArray解析成对应的List<Object>;

这里使用fastjson-1.2.2.jar包来对json字符串转化为javabean类型;

前端发送请求:

Controller接收这个参数:

   //用的是fastjson 

    import com.alibaba.fastjson.JSONArray;

    import com.cy.po.Friend;

  /**     * 保存朋友2     */    @RequestMapping("/saveStudent2")    @ResponseBody    public void saveStudent2(int id, String name, int age, String friends){        List
frientList = JSONArray.parseArray(friends, Friend.class); System.out.println("接收参数friends--->> " + frientList); }

可以看到前端发送参数:

controller中经过json解析为javabean:

 

转载于:https://www.cnblogs.com/tenWood/p/6736700.html

你可能感兴趣的文章
网络基础——网络协议
查看>>
String.getBytes()方法中的中文编码问题
查看>>
VMware ESXi定制版(OEM ISO)资源下载(包含5.1\5.5\6.0)
查看>>
查找算法
查看>>
搭建Tomcat与lighttpd环境
查看>>
wordpress垃圾评论的办法
查看>>
MongoDB一般安装
查看>>
Java上传截断漏洞的解决方案
查看>>
informix遇到错误 25571:Cannot create an user thread
查看>>
错误:该行已经属于另一个表
查看>>
Apache Jmeter 压力测试
查看>>
mysql日志配置
查看>>
你不知道的JavaScript--值得你挑战的JavaScript面试题(45题)
查看>>
Atitit. Class 元数据的反射操作 api apache 工具
查看>>
在 Eclipse Juno 上安装 Marketplace
查看>>
网站日志分析
查看>>
adb通过wifi连接android设备
查看>>
揭秘jbpm流程引擎内核设计思想及构架
查看>>
SpringMVC 产品笔记
查看>>
VC6.0图形处理10--腐蚀膨胀
查看>>