SpringBoot返回统一封装格式的JSON数据

本文介绍了SpringBoot如何使用@RestController返回JSON格式数据,探讨了Jackson与fastjson的区别,并展示了如何用fastjson封装统一的数据结构。内容涵盖@RestController注解、数据类型转换以及fastjson配置和使用。
摘要由CSDN通过智能技术生成

最近做了一个springboot项目,了解了下controller层统一格式返回数据,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用



一 概要

在项目开发中,接口与接口之间、前后端之间的数据传输都使用 JSON 格式。本节课就来讲解 Spring Boot 是如何返回 JSON 格式数据的,核心内容主要有:

  • @RestController 注解
  • 常用数据类型转为 JSON 格式
  • 使用 fastjson 封装统一返回的数据结构
二 @RestController注解

在 Spring Boot 中,接口返回 JSON 格式的数据很简单,在 Controller 中使用 @RestController 注解即可返回 JSON 格式的数据。

@RestController 也是 Spring Boot 新增的一个注解,我们点进去看一下该注解都包含了哪些东西。

@Target({
   ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
   
    String value() default "";
}

可以看出,@RestController 注解包含了原来的 @Controller@ResponseBody注解。使用过 Spring 的朋友对 @Controller 注解已经非常了解了,这里不再赘述。@ResponseBody 注解是将返回的数据结构转换为 JSON 格式。

所以在默认情况下,使用了 @RestController 注解即可将返回的数据结构转换成 JSON 格式,在 Spring Boot 中默认使用的 JSON 解析技术框架是 Jackson。

我们点开 pom.xml 中的 spring-boot-starter-web 依赖,可以看到 spring-boot-starter-json 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-json</artifactId>
    <version>2.0.3.RELEASE</version>
    <scope>compile</scope>
</dependency>

Spring Boot 对依赖都做了很好的封装,可以看到很多 spring-boot-starter-xxx 系列的依赖,这是 Spring Boot 的特点之一,不需要人为引入很多相关的依赖,starter-xxx 系列直接包含了所必要的依赖,所以我们再次点进去上面提到的 spring-boot-starter-json 依赖,可以看到如下代码:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.6</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jdk8</artifactId>
    <version>2.9.6</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.9.6</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-parameter-names</artifactId>
    <version>2.9.6</version>
    <scope>compile</scope>
</dependency>

到此为止,我们知道了 Spring Boot 中默认使用的 JSON 解析框架是 Jackson。下面我们看一下默认的 Jackson 框架对常用数据类型的转 JSON 处理。

三 常用数据类型转为 JSON 格式

在实际项目中,常用的数据结构无非有类对象、List 对象、Map 对象,我们看一下默认的 Jackson 框架如何将这三个常用的数据结构转成 JSON 格式的。

3.1 创建 User 实体类

为了测试,我们需要创建一个实体类,这里我们就用 User 来演示。

public class User {
   
    private Long id;
    private String username;
    private String password;
    /* 省略get、set和带参构造方法 */
}
3.2 创建 Controller 类

然后我们创建一个 Controller,分别返回 User 对象、List 和 Map<String, Object>。

import com.itcodai.course02.entity.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值