第二章 SpringBoot系列返回json数据

系列文章目录

第一章 SpringBoot系列之从0搭建项目
第二章 SpringBoot系列返回json数据
第三章 SpringBoot系列GlobalException全局异常捕获
第四章 SpringBoot系列整合Mybatis做增删改查
第五章 SpringBoot系列配置JPA访问数据
第六章 SpringBoot系列使用JdbcTemplate操作数据
第七章 SpringBoot系列静态资源处理,访问磁盘文件


前言

上一章写的是从0搭建SpringBoot项目,本章就在上一章的基础上说说SpringBoot项目是如何返回json数据的,结合日常工作中场景讲解返回json数据结构。


提示:以下是本篇文章正文内容,下面案例可供参考

一、JSON是什么?

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。(来自百度词条)

二、控制器中增加返回JSON数据方法(实际工作中我们称之为接口

)

1.新建数据结构POJO实体类

新建了一个JsonDataDTO.java实体类,为了省略get,set方法,我直接用的Lombok的@Data自动会给我们加上get,set方法

代码如下(示例):

package com.example.demo.dto;

import lombok.Data;

@Data
public class JsonDataDTO {

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 性别
     */
    private String sex;
}

在这里插入图片描述

2.在控制器DemoController中加入getJsonData方法

代码如下(示例):

package com.example.demo.controller;

import com.example.demo.dto.JsonDataDTO;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/")
public class DemoController {

    @GetMapping("/test")
    public String test() {
        return "Hello World";
    }

    @RequestMapping("/getJsonData")
    public JsonDataDTO getJsonData() {
        JsonDataDTO jsonDataDTO = new JsonDataDTO();
        jsonDataDTO.setName("张三");
        jsonDataDTO.setAge(18);
        jsonDataDTO.setSex("男");
        return jsonDataDTO;
    }
}

该处使用了@RequestMapping注解,此注解作用就是设置请求映射路径,最后我们启动项目后想要访问此方法就是通过@RequestMapping的路径找到并执行方法返回数据。


三、接口返回json数据效果

启动项目,在浏览器中访问:http://localhost:8080/getJsonData
在这里插入图片描述

总结

本章内容我们使用到了SpringBoot的@RestController restful控制器,@RequestMapping请求路径映射注解,由于我们控制器Controller上加了@RestController注解,Spring会自动把我们方法返回的结果对象JsonDataDTO转换成JSON格式的数据。

原文地址:https://www.cnblogs.com/javakfz/p/13938211.html