JavaEE简单示例——JSON数据的绑定

简单介绍:

之前我们介绍了有关复杂数据类型绑定的问题,只不过是将数据类型变成了数组,集合以及类里嵌套复杂数据类型. 除了这些基本操作之外,我们还需要学会处理json文件类型的数据.json文件是前端常用的数据存放文件,比起XML json解析速度更快,文件更小,所以在前端的使用率非常高,我们要学会使用一个Spring自带的一个jackson来将 请求参数转换成Java类,并绑定在控制器方法的形参上,在Spring中,我们需要使用一个特殊的注解来将请求的json参数 转换成Java类

使用方法:

首先,我们需要引入转换类所在的依赖坐标,并且为了更方便的发送请求,我们还需要使用jQuery来发送ajax异步请求 所以我们还需要引入jQuery文件.

在我们需要使用到的依赖引入完毕之后,我们需要接收来自浏览器页面的参数,所以我们需要在浏览器中编写一个表单 这个表单需要使用ajax来发送异步通信请求,将数据转化成JSON格式发送到控制器方法中 而在控制器方法中,我们需要解析这种格式的数据并将其绑定到Java类中,最后在控制台输出 

代码实现:

Java代码:

package SpringMVC.JSON_data_binding;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
public class jsonBinging {
    @RequestMapping("/jsonBingPro")
//    这个注解的作用是解析Json文件中的数据,并将其绑定到形参中的java中方便我们的操作
    public String jsonBingPro(@RequestBody product p){
        System.out.println(p.toString());
        return "index";
    }
    @RequestMapping("/jsonBingPros")
    public String jsonBingPros(@RequestBody List<product> products){
        for(product p :products){
            System.out.println(p.toString());
        }
        return "index";
    }
}

HTML代码:

<%--
  Created by IntelliJ IDEA.
  User: 33680
  Date: 2023/3/27
  Time: 15:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Json数据类型的绑定</title>
    <script src="../../js/jquery-3.6.4.min.js"></script>
</head>
<body>
    <form>
        商品1编号: <input id="proId" type="text"><br/>
        商品1名字: <input id="proName" type="text"><br/>
        <button type="submit" onclick="sumbmitProduct()">提交单个商品</button>
        <hr>
        商品2编号: <input id="proId2" type="text"><br/>
        商品2名字: <input id="proName2" type="text"><br/>
        <button type="submit" onclick="sumbmitProducts()">提交全部商品</button>
    </form>
    <script type="text/javascript">
        function sumbmitProduct(){
            // 将原生DOM转换成可以被Jquery操作的Jquery对象
            var proId = $('#proId').val();
            var proName = $('#proName').val();
            // 调用jQuery的ajax方法
            $.ajax({
                // 提交地址,就是控制器方法的接收请求地址
                url:"/jsonBingPro",
                // 请求方式
                type:"post",
                // 提交的数据
                data:JSON.stringify({proId:proId,proName:proName}),
                // 提交的类型
                contentType:"application/json;charset=utf-8",
                // 数据类型
                dataType:"json",
                // 提交成功之后的返回值
                success:function (response){alert(response)}
            })
        }

        function sumbmitProducts(){
            var pro1 = ({proId:$('#proId').val(),proName:$('#proName').val()});
            var pro2 = ({proId:$('#proId2').val(),proName:$('#proName2').val()});
            $.ajax({
                url:"/jsonBingPros",
                type:"post",
                data:JSON.stringify([pro1,pro2]),
                contentType: "application/json;charset=utf-8",
                dataType:"json",
                success:function (response){alert(response)}
            })
        }
    </script>
</body>
</html>

运行结果:

 

当我们在表单中输入我们的数据之后,点击下面的提交按钮,可以选择提交单个表单数据,也可以选择提交多个表单数据 ,然后我们就可以在控制台中看到我们提交的数据

 

注意点:

注意我们在提交的时候,input的name属性和我们要绑定的Java类的属性要保持一致,以及不要忘记我们需要在控制器类方法的参数对象前面添加用来处理JSON文件的注解,这样才能顺利将JSON数据绑定到Java类中

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值