在 WEB 项目中返回 JSON 数据是常见的交互形式
1.添加依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> </parent> <!--包含所有 JSON 处理的包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2.定义返回方式
在 Controller 类上面用 @RestController 定义或者在方法上面用 @ResponseBody 定义,表明是在 Body 区域输出数据
@RestController public class UserTest { @GetMapping(value = "/user/{userId}") public User getUserInfo(@PathVariable("userId") String userId) { User user = new User("lisi", 18); user.setId(Long.valueOf(userId)); return user; } }
3.自定义输出格式
自定义 XML 格式
@JsonProperty:用来自定义属性标签名称;
@JsonIgnore: 用来忽略不想输出某个属性的标签;
@JsonInclude: 用来动态包含属性的标签,如可以不包含为 null 值的属性
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 }
4.完成对象 和 Json 的互转
jackson-databind 包里面有一个 com.fasterxml.jackson.databind.ObjectMapper 类可以完成对象和 Json 数据的互转
ObjectMapper objectMapper = new ObjectMapper(); String userJsonStr = objectMapper.writeValueAsString(user); user = objectMapper.readValue(userJsonStr, User.class);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架