SpringBoot返回Json对象报错(返回对象为空{})
作者:从前慢慢慢死了 发布时间:2022-06-30 03:31:19
标签:SpringBoot,返回,Json
1 需求描述
我们现在要干一个什么事情呢,我们要在浏览器输入一个请求地址,然后我们的后端就给我返回一个User对象即可,并且我希望以Json的格式返回。这个需求很明确,我们先直观的展示一下效果。
发送请求:
接受结果:
2 代码展示
行了,明确了需求我们开始整活儿。首先我们老规矩还是先展示一下目录结构(其中标红的文件使我们今天要用到的):
接下来是具体的文件内容首先呢我们展示一下User.java文件
package com.example.springboot02.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.io.Serializable;
@Entity //表示为实体类
public class User implements Serializable {
@Id //Jpa 注解可以不写
private Long id;
//Jpa 注解可以不写,下边一样
@Column(nullable = false, unique = true)
private String userName;
@Column(nullable = false)
private String passWord;
@Column(nullable = false, unique = true)
private String email;
@Column(nullable = true, unique = true)
private String nickName;
@Column(nullable = false)
private String regTime;
// 有参构造函数
public User(Long id, String userName, String passWord, String email, String nickName, String regTime) {
this.id = id;
this.userName = userName;
this.passWord = passWord;
this.email = email;
this.nickName = nickName;
this.regTime = regTime;
}
// 无参构造函数
public User() {
}
}
接下来Usercontroller.java文件的内容:
package com.example.springboot02.controller;
import com.example.springboot02.entity.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@RequestMapping(value = "/getUser")
public User getUser() {
return new User(0L,"zxd", "12345", "zxd@thu.edu.cn", "zxd","123");
}
}
好了齐活了,我们来测试一下:
没想到吧结果却是这个鬼样子!没返回!!!为啥呢?
3 原因分析
其实在Springboot中,我们使用 @RestController 注解可以让我们直接返回Json对象,可以将对象转换成Json格式,然而这一切都依赖于User类的Getter/Setter函数而我们的代码中却没有写,最终导致了我么得到了空的对象。
4 解决方案
那就加Getter/Setter函数就好喽~
我们更新一下User.java文件:
package com.example.springboot02.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.io.Serializable;
@Entity
public class User implements Serializable {
@Id
private Long id;
@Column(nullable = false, unique = true)
private String userName;
@Column(nullable = false)
private String passWord;
@Column(nullable = false, unique = true)
private String email;
@Column(nullable = true, unique = true)
private String nickName;
@Column(nullable = false)
private String regTime;
public User(Long id, String userName, String passWord, String email, String nickName, String regTime) {
this.id = id;
this.userName = userName;
this.passWord = passWord;
this.email = email;
this.nickName = nickName;
this.regTime = regTime;
}
public User() {
}
public void setId(Long id) {
this.id = id;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public void setEmail(String email) {
this.email = email;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public void setRegTime(String regTime) {
this.regTime = regTime;
}
public Long getId() {
return id;
}
public String getUserName() {
return userName;
}
public String getPassWord() {
return passWord;
}
public String getEmail() {
return email;
}
public String getNickName() {
return nickName;
}
public String getRegTime() {
return regTime;
}
}
//
5 效果展示
这次就行了哦
6 结束语
本来今天想讲一下springboot 整合Redis的,无意中触发了这个bug,就来记录了一下希望大家引以为戒,明天继续sprinboot实战整合redis,冲冲冲!
来源:https://blog.csdn.net/qq_41010280/article/details/122589691


猜你喜欢
- 美团外卖菜单界面的Android实现代码,供大家参考,具体内容如下布局文件总布局<?xml version="1.0&quo
- strings.xml 有很多需要注意的地方和一些小技巧,知道了这些可以让你的 Android 应用更加规范易用,感兴趣的小伙伴们可以参考一
- 一、定界符成帧Framer接口package framer;import java.io.IOException;import java.i
- 许久不来 , 冒个泡 , 发一个刚做的声音波动的View吧 : 代码不多 , 没什么技术含量 , 权当给您省时间了 , 直接复制粘贴就能用
- 如果想分析Android下 某个APP的网络数据交互,需要在Android手机上抓包,最常用的抓包工具非tcpdump莫属,用tcpdump
- Kryo框架的source已移至https://github.com/EsotericSoftware/kryo ,进入此页面,然后点击右边
- 1 @SpringBootApplication自动配置原理@SpringBootApplication是一个组合注解,主要由@Compon
- 一、概括1.通常创建一个对象的方法如图:通过 Student tom = new Student(); 创建tom对象,这种创建
- 前言本篇文章会说下如何使用并且要用麻烦的自定义 view 去实现时间轴效果,以及如何分析、实现自定义 view。 需要具备的知识:Paint
- 本文实例为大家分享了C#实现简易点餐功能的具体代码,供大家参考,具体内容如下图示效果实现过程1.设计界面2.设计控件及其属性3.实现点击事件
- 【开发环境】物理机版本:Win7旗舰版(64位)Android Studio版本:2.1正式版【Android Studio的优势】•基于G
- 简介:本文将帮助您使用 Spring Boot 创建简单的 REST 服务。你将学习什么是 REST 服务?如何使用 Spring Init
- Spring 基于注解启动主要有两个Class实现注解启动AnnotationConfigApplicationContextAnnotat
- C# 中有三种定时器,System.Windows.Forms 中的定时器和 System.Timers.Timer 的工作方式是完全一样的
- Maven打包一般可以生成两种包一种是可以直接运行的包,一种是依赖包(只是编译包)。Maven默认打包时jar,如果需要修改其他类型。可以修
- 使用场景:自己项目对接多个外部系统,各个外部系统使用的字段并没有统一,所以要根据不同系统动态的输出序列化数据,使适应各个系统的要求实现方式使
- 1、LongAdder由来LongAdder类是JDK1.8新增的一个原子性操作类。AtomicLong通过CAS算法提供了非阻塞的原子性操
- 本文实例讲述了java实现文件重命名的方法。分享给大家供大家参考。具体如下:下载的电影总是有一些存在网站名称等没用的信息 作为一个强迫症患者
- 其实本没有没打算写这篇的,但还是要写一下写这篇博客的起因是因为,现在呆着的这家公司居然没有统一的API返回格式?,询问主管他居然告诉我用HT
- 经常遇到的问题在实际得开发过程中,我们经常会遇到以下场景,我们后端请求某个接口后获取到得数据,不希望将所有字段都返回给前端,那么我们需要封装