JSON 是目前主流的前后端数据传输方式。在 Spring Boot 项目中,只要添加了 Web 依赖(spring-boot-starter-web),就可以很方便地实现 JSON 转换。下面我们通过样例进行演示。
Web 依赖默认加入了 jackson-databind 作为 JSON 处理器,我们不需要要添加额外的 JSON 处理器就可以返回一段 JSON。
1,实体类创建
首先我们创建一个 Book 实体类,注意这里用到了两个注解:
@JsonIgnore:json 序列化时将 java bean 中的一些属性忽略掉。即生成 json 时不生成其标注的属性。
@JsonFormat:将日期类型的数据格式化成指定格式的字符串。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50  | package com.example.demo;import com.fasterxml.jackson.annotation.JsonFormat;import com.fasterxml.jackson.annotation.JsonIgnore;import java.util.Date;public class Book {    private String name;    private String author;    @JsonIgnore    private Float price;    @JsonFormat(pattern = "yyyy-MM-dd")    private Date publicationDate;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAuthor() {        return author;    }    public void setAuthor(String author) {        this.author = author;    }    public Float getPrice() {        return price;    }    public void setPrice(Float price) {        this.price = price;    }    public Date getPublicationDate() {        return publicationDate;    }    public void setPublicationDate(Date publicationDate) {        this.publicationDate = publicationDate;    }} | 
2,创建 Contoller
在这个 Contoller 中我们初始化一个 Book 对象,然后将其直接返回。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  | package com.example.demo;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.bind.annotation.GetMapping;import java.util.Date;@RestControllerpublic class HelloController {    @GetMapping("/hello")    public Book hello() {        Book book = new Book();        book.setName("Spring Boot开发指南");        book.setAuthor("hangge");        book.setPrice(50f);        book.setPublicationDate(new Date());        return book;    }} | 
3,访问测试
在浏览器访问 /hello 这个接口,可以看到 JSON 数据已经成功返回了。
原文出自:www.hangge.com  转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2460.html
        
    