欢迎来到从零开始学Spring Boot的旅程!在Spring Boot中,返回JSON数据是很常见的需求,特别是当我们构建RESTful API时。我们对上一篇的Hello World进行简单的修改。

  1. 添加依赖

    首先,确保你的build.gradle文件中已经包含了Spring Web的依赖,因为返回JSON数据通常与Web请求和响应有关。Spring Boot的starter-web已经包含了所有必要的依赖,所以如果你使用Spring Initializr创建的项目,这一步应该已经完成了。

  2. 创建数据模型

    接下来,我们需要一个数据模型来表示我们要返回的JSON数据。先创建一个model的package来存放java类,创建一个User的Java类来表示这个模型。

     package cn.daimajiangxin.springboot.learning.model;
    
     import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.extern.slf4j.Slf4j; @Data
    @Slf4j
    @AllArgsConstructor
    public class User {
    private String name;
    private int age;
    }
  3. 创建控制器

    创建一个控制器来处理HTTP请求并返回JSON数据。使用@RestController和@RequestMapping注解来标记这个类,这样Spring Boot就会自动将返回的对象转换为JSON格式。@RequestMapping注解对请求处理类中的请求处理方法进行标注,@GetMapping注解用于处理HTTP GET请求,并将请求映射到具体的处理方法中。

    package cn.daimajiangxin.springboot.learning.controller;
    
    import cn.daimajiangxin.springboot.learning.model.User;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController; @RestController
    @RequestMapping("/user")
    public class UserController { @GetMapping("/getUser")
    public User getUser() {
    // 创建一个User对象
    User user = new User("Alice", 30);
    return user; // Spring Boot会自动将User对象转换为JSON格式
    }
    }
  4. 运行应用程序

    启动你的Spring Boot应用程序。如果一切顺利,当你访问http://localhost:8080/user/getUser时,你应该能看到如下的JSON响应:

  5. 自定义JSON输出

    有时,你可能需要自定义JSON的输出格式或者包含额外的信息。你可以使用@JsonInclude、@JsonProperty等注解来控制Jackson库(Spring Boot默认的JSON处理库)的序列化行为。例如,你可以使用@JsonInclude(JsonInclude.Include.NON_NULL)来避免输出null值,或者使用@JsonProperty来重命名JSON字段。

    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.annotation.JsonProperty;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.extern.slf4j.Slf4j; @Data
    @Slf4j
    @AllArgsConstructor
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public class User {
    @JsonProperty("username")
    private String name;
    private int age;
    }

    这样,返回的JSON数据就会将name字段重命名为username,并且不会包含null值。

  6. 总结

    在Spring Boot中返回JSON数据是一个简单而直接的过程。通过使用@RestController注解和创建适当的数据模型,你可以很容易地构建RESTful API并返回格式化的JSON响应。记住,你可以使用Jackson库的注解来进一步定制JSON的输出格式。


我是代码匠心,和我一起学习更多精彩知识!!!扫描二维码!关注我,实时获取推送。


源文来自:https://daimajiangxin.cn

从零开始学Spring Boot系列-返回json数据的更多相关文章

  1. Spring boot之返回json数据

    1.步骤: 1. 编写实体类Demo 2. 编写getDemo()方法 3. 测试 2.项目构建 编写实体类Demo package com.kfit; /** * 这是一个测试实体类. */ pub ...

  2. (2)Spring Boot返回json数据【从零开始学Spring Boot】

    在做如下操作之前,我们对之前的Hello进行简单的修改,我们新建一个包com.kfit.test.web 然后新建一个类HelloControoler, 然后修改App.java类,主要是的这个类就是 ...

  3. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

  4. (23)Spring Boot启动加载数据CommandLineRunner【从零开始学Spring Boot】

    [Spring Boot 系列博客] )前言[从零开始学Spring Boot] : http://412887952-qq-com.iteye.com/blog/2291496 )spring bo ...

  5. (4)Spring Boot使用别的json解析框架【从零开始学Spring Boot】

    此文章已经废弃,请看新版的博客的完美解决方案: 78. Spring Boot完美使用FastJson解析JSON数据[从零开始学Spring Boot] http://412887952-qq-co ...

  6. 4. 使用别的json解析框架【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/51585921 此文章已经废弃,请看新版的博客的完美解决方案: 78. Spring Boo ...

  7. (8). 使用JPA保存数据【从零开始学Spring Boot】

    在看这一篇文档的话,需要先配置好JPA – Hibernate. 总体步骤: (1)   创建实体类Demo,如果已经存在,可以忽略. (2)   创建jpa repository类操作持久化. (3 ...

  8. 53. spring boot系列合集【从零开始学Spring Boot】

    前40章节的spring boot系列已经打包成PDF在csdn进行发布了,如果有需要的可以进行下载. 下载地址:http://download.csdn.net/detail/linxinglian ...

  9. 49. spring boot日志升级篇—理论【从零开始学Spring Boot】

    我们之前在其中的一篇文章介绍过如何在spring boot中使用日志记录SLF4J. Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如 ...

  10. 48. spring boot单元测试restfull API【从零开始学Spring Boot】

    回顾并详细说明一下在在之前章节中的中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建 ...

随机推荐

  1. [转帖]引人入胜,实战讲解“Java性能调优六大工具”之linux命令行工具

    Java性能调优六大工具之Linux命令行工具 为了能准确获得程序的性能信息,需要使用各种辅助工具.本章将着重介绍用于系统性能分析的各种工具.熟练掌握这些工具,对性能瓶颈定位和系统故障排查都很有帮助. ...

  2. 买彩票能中大奖?用Java盘点常见的概率悖论 | 京东云技术团队

    引言 <双色球头奖概率与被雷劈中的概率哪个高?> <3人轮流射击,枪法最差的反而更容易活下来?> 让我们用Java来探索ta们! 悖论1:著名的三门问题 规则描述:你正在参加一 ...

  3. 我对computed的理解-以及computed的传参

    computed 传参 <template> <div> <p>computed传参的写法:{{ who1Params('--我是传参的内容') }}</p& ...

  4. 如何写RN样式 如何写RN组件 如何满屏 如何使用变量

    app.js 文本水平居中了哈 控制文本的大小 字体颜色等 只有在文本元素上去控制哈 import React from 'react'; import {View, Text, StyleSheet ...

  5. 【记录一个问题】gin框架中,ShouldBindUri()函数依赖特定版本编译器,更换库的版本号后导致panic

    panic发生在这一行: uriBindErr = c.ShouldBindUri(methodLastInParam.Interface()) 导致panic的堆栈信息如下: err=reflect ...

  6. Walrus 0.5发布:重构交互流程,打造开箱即用的部署体验

    开源应用管理平台 Walrus 0.5 已于近日正式发布! Walrus 0.4 引入了全新应用模型,极大程度减少了重复的配置工作,并为研发团队屏蔽了云原生及基础设施的复杂度.Walrus 0.5 在 ...

  7. 强化学习基础篇[2]:SARSA、Q-learning算法简介、应用举例、优缺点分析

    强化学习基础篇[2]:SARSA.Q-learning算法简介.应用举例.优缺点分析 1.SARSA SARSA(State-Action-Reward-State-Action)是一个学习马尔可夫决 ...

  8. 5.10 Windows驱动开发:摘除InlineHook内核钩子

    在笔者上一篇文章<内核层InlineHook挂钩函数>中介绍了通过替换函数头部代码的方式实现Hook挂钩,对于ARK工具来说实现扫描与摘除InlineHook钩子也是最基本的功能,此类功能 ...

  9. Centos7 本地与网络Yum源配置

    虽然Yum工具,只需要你的主机连接互联网,就可以直接使用,但是有些时候我们需要自定义Yum源实现加速,下面我们将配置一个本地Yum源,来使用光盘中的软件,其他网络配置操作步骤相同,只是会在baseur ...

  10. ABC 311

    前四题过水 E 枚举正方形的上边界所在行.对于第 \(i\) 行一个没洞的位置 \((i,j)\),我们尝试求出以它为右上角的无洞正方形个数. 结论:设以 \((i,j-1)\) 为右上角的无洞正方形 ...