Spring Boot 返回 JSON 数据,一分钟搞定!

本文介绍在SpringBoot中处理JSON数据的简单步骤,包括添加依赖、定义返回格式和使用注解自定义输出。同时,展示了如何利用Jackson库实现对象与JSON的相互转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Spring Boot 中返回 JSON 数据很简单,如下几步。

加入依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
</parent>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

除了 Spring Boot 必须自带的 parent 依赖外,仅仅只需要加入这个 spring-boot-starter-web 包即可,它会自动包含所有 JSON 处理的包,如下图所示。

这个插件感谢知识星球球友的分享,简单不错,点击文章底部的阅读原文,可以加入一起学习。

返回 XML 数据格式定义

1)定义返回方式

在 Controller 类上面用 @RestController 定义或者在方法上面用 @ResponseBody 定义,表明是在 Body 区域输出数据。

下面是使用示例:

@RestController
public class JsonTest {

    @GetMapping(value = "/user/{userId}")
    public User getUserInfo(@PathVariable("userId") String userId) {
        User user = new User("Java技术栈", 18);
        user.setId(Long.valueOf(userId));
        return user;
    }

}

2)自定义输出格式

上面的方法直接返回对象,对象会自动转换为 XML 格式,不过是默认的标签,可以通过以下标签进行自定义 XML 格式。

public class User {

    @JsonProperty("user-name")
    private String userName;

    private Long id;

    private Integer age;

    @JsonIgnore
    private String address;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String memo;

    // get set 略

}

程序输出:

{"id":1,"age":18,"user-name":"Java技术栈"}

上面演示了几个常用的注解。

@JsonProperty: 可用来自定义属性标签名称;

@JsonIgnore: 可用来忽略不想输出某个属性的标签;

@JsonInclude: 可用来动态包含属性的标签,如可以不包含为 null 值的属性;

更多注解可以查看这个包:

如何手动完成对象 和 Json 的互转?

jackson-databind 包里面有一个 com.fasterxml.jackson.databind.ObjectMapper 类可以完成对象和 Json 数据的互转,下面是一个简单的合作示例。

ObjectMapper objectMapper = new ObjectMapper();

String userJsonStr = objectMapper.writeValueAsString(user);

User jsonUser = objectMapper.readValue(userJsonStr, User.class);

更多相关的使用及原理可以查看这个包。

好了,Spring Boot 返回 JSON 格式数据就是这么简单,有什么不懂的可以点击阅读原文加入星球和大家一起学习讨论。

转载于:https://my.oschina.net/u/3286465/blog/2990762

<think>嗯,用户想要一份《5分钟搞定API接口手册》,首先我需要理解他们的需求。可能他们是一个刚接触API开发的新手,或者时间紧迫,需要快速上手。所以,我应该把内容简化,突出重点步骤,避免复杂的理论。 用户提到“5分钟搞定”,说明他们希望快速得到可操作的指南,可能需要包括基本概念、创建步骤、示例代码和工具推荐。同时,他们可能对API的设计原则和测试工具不太熟悉,需要简明扼要的解释。 接下来,我需要确认手册的结构。通常API手册包括什么是API、设计原则、开发步骤、工具和测试方法。但要在5分钟内讲清楚,必须精简每个部分,只保留关键点。 比如,在设计原则部分,RESTful风格和HTTP方法是必须提到的。开发步骤需要分点列出,使用工具如Postman和Swagger可以简化流程,这些工具对新手友好,应该推荐。 然后,示例部分要简单易懂,比如用Python Flask框架展示GET和POST请求,这样用户可以直接复制代码并运行。同时,注意事项部分要提醒安全性和版本控制,这些是实际开发中容易忽视但重要的点。 还要考虑用户可能遇到的问题,比如如何测试API,是否需要身份验证,如何处理错误。在手册中加入测试方法和常见状态码的解释能帮助他们快速排查问题。 最后,检查内容是否覆盖了主要步骤,语言是否简洁,确保用户能在短时间内理解并应用。避免使用专业术语过多,必要时给出链接或扩展阅读,但手册本身保持精炼。</think>以下是一份快速上手的《5分钟API接口开发指南》,采用分步式结构呈现: --- ### 一、API核心认知(1分钟) 1. **API本质**:应用程序间的"服务菜单",通过URL端点提供数据交互 2. **通信基础**:HTTP协议(GET/POST/PUT/DELETE) 3. **数据格式**:推荐JSON(轻量易读),示例:`{"code":200, "data":{...}}` 4. **必备要素**:接口地址、请求方法、参数、响应结构、状态码 ### 二、快速开发四步法(2分钟) **步骤1:设计端点** ```python # 示例:用户查询接口 GET /api/v1/users?id=123 ``` **步骤2:选择框架** - Python:Flask(轻量)/ FastAPI(现代) - Node.js:Express - JavaSpring Boot **步骤3:编写示例(Python Flask)** ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/hello', methods=['GET']) def hello(): return jsonify({"message": "Hello API!", "status": 200}) if __name__ == '__main__': app.run(port=5000) ``` **步骤4:测试验证** ```bash curl http://localhost:5000/api/hello # 预期返回:{"message": "Hello API!", "status": 200} ``` ### 三、必备工具集(1分钟) 1. **测试工具**:Postman / Insomnia 2. **文档生成**:Swagger UI / Redoc 3. **在线模拟**:Mockoon / JSONPlaceholder 4. **监控分析**:Posthog / Grafana ### 四、关键注意事项(1分钟) 1. **安全防护**:必加API密钥验证/JWT令牌 2. **版本控制**:URL路径包含版本号(如`/api/v1/...`) 3. **限流策略**:防止滥用(如每分钟100次请求) 4. **错误规范**: ```json { "code": 404, "error": "RESOURCE_NOT_FOUND", "message": "请求的用户不存在" } ``` ### 五、常用状态码速查 | 代码 | 含义 | 使用场景 | |------|---------------|--------------------------| | 200 | 成功 | 常规请求成功 | | 201 | 创建成功 | 新建资源后返回 | | 400 | 错误请求 | 参数格式错误 | | 401 | 未授权 | 缺少身份验证 | | 404 | 未找到 | 请求资源不存在 | | 500 | 服务器错误 | 后端处理异常 | --- **扩展建议**:使用[Swagger Editor](https://editor.swagger.io/)自动生成API文档,采用[OpenAPI 3.0](https://spec.openapis.org/oas/v3.0.3)规范保证接口一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值