php返回json数据_Spring Boot 返回 JSON 数据,一分钟搞定!

本文介绍了在 Spring Boot 中返回 JSON 数据的方法。首先要加入相关依赖,接着说明了返回 JSON 数据格式的定义,包括定义返回方式和自定义输出格式,还介绍了常用注解。最后提到可通过特定类手动完成对象和 Json 的互转。

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

51781262997bfbd35145700cadd1555a.png

如何返回 JSON 数据?

在 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 处理的包,如下图所示。

f3bb1aec77fab58c930e07f94ff29094.png

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

返回 JSON 数据格式定义

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)自定义输出格式

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

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 值的属性;

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

c94b7517507039679257eb3205d1c9d6.png

如何手动完成对象 和 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 文章正在撰写中,关注Java技术栈获取第一时间推送。

版权申明:本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重他人劳动成果和知识产权。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值