JSON数据交互接收请求数据响应数据入门案例

JSON数据交互接收请求数据响应数据入门案例

1 概述

@RequestBody:将json、xml 等内容 转换 成Java对象。

@ResponseBody:将Java对象 转换 成 json、xml等内容。

2 前端发送ajax请求,都断获取json数据

【前端发送ajax请求,后端通过VO自动获取数据打印】

前端代码
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>

    <script src="${pageContext.request.contextPath}/js/jquery-3.3.1.js"></script>
    <script>
        $(function () {

            var url = "${pageContext.request.contextPath}/tJson.action";
            var params={
                "name":"zhangsan",
                "price":"123"
            }
            var callBack=function (rel) {
                //后端有返回结果 就会弹窗显示, 没有就不会弹窗
                alert(rel.name+" "+rel.price)
            }
            //发射
            $.post(url,params,callBack,"json")

        })
    </script>
</head>
<body>
  页面加载完毕就发射ajax 
</body>
</html>
后端代码

Qvo

 public class QVo {

    private String name;
    private Double price;
....空参/有参/get/set/toString
}

Controller

Controller
@RequestMapping("/tJson.action")
public String testJson(QVo qvo){
    //查看前端传递的json 自动转化的VO结果
    System.out.println(qvo);

    return "/book.jsp";//随便转发到一个页面,不影响测试结果.
}

3 后端给前端响应Json数据

需求:

跟上一个例子类似, 前端发送请求给后端, 后端接收数据后给前端再相应回一个json数据.

该例子中,需要直接把java对象通过SpringMvc自动转化成json数据. 需要使用两个东西完成.

  1. 导入Jackson-databind坐标

  2. 在方法的返回值上使用@ResponseBody注解.

Pom文件坐标

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.9.7</version>
</dependency>

Controller

@RequestMapping("tj.action")
public @ResponseBody QVo getInfo(String name,Double price){

    System.out.println("接收到前端数据:"+name+" "+price);

    //创建一个对象, 通过SpringMvc自动把这个对象转化成Json响应给前端
    QVo qVo = new QVo("lisiguang", 220.4);
    return qVo;
}

[@ResponseBody   需要添加这个注解,才会自动转化成json]
前端
<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.js"></script>
<script>
    $(function () {

        var url = "${pageContext.request.contextPath}/tj.action";
        var params={
            "name":"zhangsan",
            "price":"123"
        }
        var callBack=function (rel) {
            //后端有返回结果 就会弹窗显示, 没有就不会弹窗
            alert(rel.name+" "+rel.price)
        }
        //发射
        $.post(url,params,callBack,"json")

    })
</script>

测试结果

后端在这里插入图片描述

前端
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值