Ajax和SpringBoot实现JSON的传输与接收

  • 无论是前后端分离的项目还是不分离的项目,在进行数据交互的时候我们可以将数据封装成XML、JSON等格式进行数据的交互;使用开发项目中最为常见的方式将数据封装成JSON格式传输到后台,前端分别使用axios、Ajax进行JSON 数据的传送,后端使用Spring Boot进行接收,并通过几种常用的注解实现JSON数据的接收。
    • 使用前我们必须要理解什么是JSON对象?什么是JSON字符串?

//首先定义一个JSON对象
    1、使用Javascript的方式定义
    var jsonObj = { name : 'zhangsan',password:'123456'} //这里定义的对象名要和实体中属性名一致,不然后台接收不到
    2、使用vue 定义
    var jsonObj = {name: '',password: ''}
    jsonObj.name = this.name;
    jsonObj.password = this.password;
//定义JSON字符串
    var jsonObj = {"name":"zhangsan","password":123456}    
 //相比已经很明显了,JSON对象的属性名不用打引号,且属性名与实体属性名一致(尽量)
 //了解了JSON对象之后,JavaScript提供了两个方法
 1、JSON.parse() //将一个JSON字符串转换JavaScript对象
 2、JSON.stringify() //将javaScript的值转换成JSON字符串
 //例如console.log(JSON.stringify(jsonObj))  {"name":"zhangsan","password":123456}
  • 使用AJax的传送JSON字符串

//ajax 使用异步刷新的原理,只针对页面子模块请求进行刷新,不影响整个页面,提升了与用户的交互性。
//基本语法
1、Jquery --Ajax
   var jsonObj = {"name":"zhangsan","password":123456};
$.ajax({
    url:"/login",
    method:"POST",
    dataType:"json",
    data:JSON.stringify(jsonObj),
    contentType:"application/json",
    success:function(res){
        //逻辑代码
    },
    error:function(res){
        //逻辑代码
    }
})
  •  使用axios传送JSON对象
var jsonObj = {name:'',password:''}
jsonObj.name = this.name;
jsonObj.password = this.password;
axios({
    url:"/login",
    method:"POST",
    contentType:"aplication/json",
    dataType:"json",
    data:JSON.stringify(jsonObj),  
}).then(res => {
    //逻辑代码
})
  • 后端接收参数
//1、@RequestParam
//2、@RequestBody
@Controller
public class LoginController {
  @PostMapping("/login")
  public void login(@RequestParam("username") String username,
                    @RequestParam("password") String password){
      System.err.println(username);
      System.err.println(password);
  }
  //或者
@Controller
public class LoginController {
  @PostMapping("/login")
  public void login(@RequestBody Map<String,Object> map){
      System.err.println(map.get("username"));
      System.err.println(map.get("password"));
  }  
  //或者
@Controller
public class LoginController {
  @PostMapping("/login")
  public void login(@RequestBody User user){
      System.err.println(user);
}
}

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值