资讯专栏INFORMATION COLUMN

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

Backache / 1776人阅读

摘要:在项目中返回数据是常见的交互形式,在中这一切都变得十分简单。返回数据格式定义定义返回方式在类上面用定义或者在方法上面用定义,表明是在区域输出数据。返回数据栈长正在拼命写作中,过两天我的公众号会第一时间分享。

在 WEB 项目中返回 JSON 数据是常见的交互形式,在 Spring Boot 中这一切都变得十分简单。So easy!!!

你所需具备的基础

什么是 Spring Boot?

Spring Boot 核心配置文件详解

Spring Boot 开启的 2 种方式

Spring Boot 自动配置原理、实战

Spring Boot 2.x 启动全过程源码分析

更多请在Java技术栈微信公众号后台回复关键字:boot。

如何返回 JSON 数据?

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

加入依赖

    org.springframework.boot
    spring-boot-starter-parent
    2.0.4.RELEASE



    org.springframework.boot
    spring-boot-starter-web

除了 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 格式数据就是这么简单,有什么不懂的可以点击阅读原文加入星球和大家一起学习讨论。

《Spring Boot 返回 XML 数据》栈长正在拼命写作中,过两天我的公众号会第一时间分享。

本文原创首发于微信公众号:Java技术栈(id:javastack),关注公众号在后台回复 "boot" 可获取更多,转载请原样保留本信息。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72688.html

相关文章

  • Laravel 和 Spring Boot 两个框架比较创业篇(:开发效率)

    摘要:小红要以最低成本最快速度推出版本,投放市场,收集反馈,持续迭代。总结在技能掌握充足的情况下,个人感觉开发效率要略高于。 我个人是比较不喜欢去正儿八经的比较两个框架的,这样没有意义,不过欲善其事先利其器! 技术是相通的,但是在某个特定的领域的某个阶段肯定有相对最适合的一个工具! 这里比较不是从技术角度比较,而是从公司技术选型考虑的,特别是初创的互联网创业公司。没办法,谁让互联网公司离不开...

    tinna 评论0 收藏0
  • Laravel 和 Spring Boot 两个框架比较创业篇(:开发效率)

    摘要:小红要以最低成本最快速度推出版本,投放市场,收集反馈,持续迭代。总结在技能掌握充足的情况下,个人感觉开发效率要略高于。 我个人是比较不喜欢去正儿八经的比较两个框架的,这样没有意义,不过欲善其事先利其器! 技术是相通的,但是在某个特定的领域的某个阶段肯定有相对最适合的一个工具! 这里比较不是从技术角度比较,而是从公司技术选型考虑的,特别是初创的互联网创业公司。没办法,谁让互联网公司离不开...

    zoomdong 评论0 收藏0
  • Apollo:微服务架构下的配置管理

    摘要:比如使用的时候指定使用哪个环境的配置在微服务架构下,服务的数量会比之前的单体应用多,部署的节点数量也会很多。今天主要是讲下在中如何对接进行配置管理。 问题背景 在实际工作中,我们的开发环境,测试环境,生产环境对应的 Mysql 数据库,Redis 这些信息都不一样,每个环境都有对应的一套配置,在 Spring Boot 中我们通常会编写多个配置文件,也就是每个环境一个配置文件。 比如:...

    cloud 评论0 收藏0
  • Spring 指南(构建RESTful Web服务)

    摘要:构建服务本指南将引导你完成使用创建服务的过程。接下来,你将创建将为这些问候语提供服务的资源控制器。告诉在包中查找其他组件配置和服务,允许它找到控制器。显示日志输出,该服务应在几秒内启动并运行。 构建RESTful Web服务 本指南将引导你完成使用Spring创建hello world RESTful Web服务的过程。 将要构建什么 你将构建一个接受HTTP GET请求的服务: ht...

    yzzz 评论0 收藏0

发表评论

0条评论

Backache

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<