在 WEB 项目中返回 JSON 数据是常见的交互形式,在 Spring Boot 中这一切都变得十分简单。So easy!!!java
更多请在Java技术栈公众号后台回复关键字:boot。web
在 Spring Boot 中返回 JSON 数据很简单,以下几步。spring
<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 处理的包,以下图所示。json
这个插件感谢知识星球球友的分享,简单不错,点击文章底部的阅读原文,能够加入一块儿学习。app
在 Controller 类上面用 @RestController
定义或者在方法上面用 @ResponseBody
定义,代表是在 Body 区域输出数据。spring-boot
下面是使用示例:源码分析
@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; } }
上面的方法直接返回对象,对象会自动转换为 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技术栈"}
上面演示了几个经常使用的注解。3d
@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 数据》栈长正在拼命写做中,过两天个人公众号会第一时间分享。
本文原创首发于公众号:Java技术栈(id:javastack),关注公众号在后台回复 "boot" 可获取更多,转载请原样保留本信息。