SpringBoot如何接收前端传来的json数据

Spring Boot 提供了多种方式用于接收前端传来的 JSON 数据,包括但不限于以下两种常见方式:

Spring Boot 提供了多种方式用于接收前端传来的 JSON 数据,包括但不限于以下两种常见方式:

  1. 使用 @RequestBody 注解

使用 @RequestBody 注解可以将前端传来的 JSON 数据直接转换为 Java 对象。具体操作如下:

(1)在控制器中添加 @PostMapping 注解,并指定请求路径。比如:

@PostMapping("/testJson")
public String testJson(@RequestBody User user) {
    System.out.println(user);
    return "success";
}

(2)在前端发送请求时,需要设置请求头 Content-Type 为 application/json,请求体为一个 JSON 字符串。比如:

$(function () {
    $("#btn").click(function () {
        var data = {
            "name": "张三",
            "age": 20,
            "gender": "男"
        };
        $.ajax({
            url: "/testJson",
            type: "POST",
            contentType: "application/json;charset=utf-8",
            data: JSON.stringify(data),
            success: function (data) {
                alert(data);
            },
            error: function (data) {
                alert("请求失败!");
            }
        });
    });
});
  1. 使用 @RequestParam 注解

如果前端传来的 JSON 数据包含的属性数量比较少,我们也可以使用 @RequestParam 注解将其解析。比如:

(1)在控制器中添加 @PostMapping 注解,并指定请求路径。比如:

@PostMapping("/testJson")
public String testJson(@RequestParam("name") String name,
                       @RequestParam("age") Integer age,
                       @RequestParam("gender") String gender) {
    System.out.println(name);
    System.out.println(age);
    System.out.println(gender);
    return "success";
}

(2)在前端发送请求时,请求参数名需要与 Java 方法参数名一致。比如:

$(function () {
    $("#btn2").click(function () {
        var name = "李四";
        var age = 25;
        var gender = "女";
        $.ajax({
            url: "/testJson",
            type: "POST",
            data: {
                "name": name,
                "age": age,
                "gender": gender
            },
            success: function (data) {
                alert(data);
            },
            error: function (data) {
                alert("请求失败!");
            }
        });
    });
});

以上两种方式均可接收前端传来的 JSON 数据。区别在于第一种方式可以将 JSON 数据直接转换为 Java 对象,而第二种方式需要手动解析每个属性。

本文标题为:SpringBoot如何接收前端传来的json数据

基础教程推荐