JSON是目前主流的前后端数据传输方式,通常我们从服务器中读取 JSON 数据,经过处理后,在网页中显示数据
以下通过一个简单的例子,实现从服务器端读取数据,并将数据返回到网页上
准备工作
首先创建一个 SpringBoot 项目,参考此文
IDEA创建SpringBoot项目的三种方法:https://blog.csdn.net/weixin_42193813/article/details/106440457
一、添加web依赖
如果在创建的时候已经添加了,那么就不用再添加
如果还没有添加web依赖,那么在pom.xml中添加如下代码
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这个依赖中默认加入了jackson-databind作为JSON处理器,所以不用添加格外的JSON处理器了
二、创建一个Person类
- @JsonIgnore:表示忽略,不返回此数据,也就是不返回age这个变量的值
- @JsonFormat:对日期进行格式化
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.Date;
public class Person {
private String name;
@JsonIgnore // 不返回此数据
private int age;
private String sex;
@JsonFormat(pattern = "yyyy-MM-dd") // 对日期格式化
private Date birthday;
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
三、创建一个PersonController类
- @RestController:将方法返回的对象直接在浏览器上展示成 json 格式
- @GetMapping:将 http 的 get 请求映射到特定的处理方法上,比如如下代码就是将get请求映射到了person这个方法上
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
@RestController
public class PersonController {
@GetMapping("/person")
public Person person() {
Person person = new Person();
person.setName("小张");
person.setAge(18); // 永远18岁
person.setSex("男");
person.setBirthday(new Date()); // 保密
return person;
}
}
四、启动SpringBoot
创建项目的时候就会自动生成这个主方法,如果通过Maven创建或者其它方法,而没有主方法的,可以手动添加
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
然后执行程序即可,当看到如下结果,说明执行成功
五、测试JSON
在浏览器中输入http://localhost:8080/person
可以看到返回的如下信息,说明执行成功了
上图返回的数据中,并没有年龄信息age,因为在声明age变量的时候添加了@JsonIgnore注解,所以并不会返回这个变量的数据
JSON 在线解析
我们将以上输出的数据通过在线解析这个网站 https://www.json.cn/ 解析一下
得到如下结果
这就是JSON的语法格式,感兴趣可以去深入了解一下
总结
以上是SpringBoot返回JSON数据的例子,返回的结果是没有经过处理的数据,在实际开发中,肯定要对这些数据进行处理,然后再使用
这是SpringBoot自带的处理方式,用起来比较简单,还有其它的JSON处理器,比如Gson、fastjson等