在 WEB 项目中返回 JSON 数据是常见的交互形式,在 Spring Boot 中这一切都变得十分简单。So easy!!!
更多请在Java技术栈微信公众号后台回复关键字:boot。
在 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 处理的包,如下图所示。 
 
 这个插件感谢知识星球球友的分享,简单不错,点击文章底部的阅读原文,可以加入一起学习。
 在 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;
	}
}
复制代码 
 上面的方法直接返回对象,对象会自动转换为 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 值的属性;
更多注解可以查看这个包:
 
  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 格式数据就是这么简单,有什么不懂的可以点击阅读原文加入星球和大家一起学习讨论。
《Spring Boot 返回 XML 数据》栈长正在拼命写作中,过两天分享。
在 WEB 项目中返回 JSON 数据是常见的交互形式,在 Spring Boot 中这一切都变得十分简单。So easy!!!
更多请在Java技术栈微信公众号后台回复关键字:boot。
在 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 处理的包,如下图所示。 
 
 这个插件感谢知识星球球友的分享,简单不错,点击文章底部的阅读原文,可以加入一起学习。
 在 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;
	}
}
复制代码 
 上面的方法直接返回对象,对象会自动转换为 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 值的属性;
更多注解可以查看这个包:
 
  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 格式数据就是这么简单,有什么不懂的可以点击阅读原文加入星球和大家一起学习讨论。
《Spring Boot 返回 XML 数据》栈长正在拼命写作中,过两天分享。
好了,今天的分享就到这里,更多 Spring Boot 文章正在撰写中,关注Java技术栈微信公众号获取第一时间推送。
在公众号后台回复:boot,还能获取栈长整理的往期 Spring Boot 教程,都是实战干货,以下仅为部分预览。