利用SpringBoot返回一个json对象

本文详细介绍使用SpringBoot实现返回JSON对象的过程,包括实体类创建、控制器编写,并讲解了HTTP状态码的应用,最后展示了如何封装返回信息,确保数据格式统一。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于SpringBoot如何返回一个json对象?

开发过程中,接口是必不可少的,那么提前约定数据格式就成了必不可少的步骤。一般情况下大家都是用json格式来传递数据,今天就用spring boot来实现一下返回json对象的步骤。

1、首先创建一个spring boot项目,在spring boot项目下写一个实体类,随便写几个属性意思意思。
在这里插入图片描述
2、把controller写起来,如果习惯了写springmvc,那么写出来的代码就是这样的了,主要依赖的@Controller、@ResponseBody注解。


3、在springboot下写法就简单了一些,用的是@RestController,这个注解就可以替代@Controller+@ResponseBody这两个注解的作用。
在这里插入图片描述
4、执行后得到的页面上就展示出了employee对象。

{“name”:“杰克”,“passowod”:“123456”,“age”:“30”,“gender”:“男”}

5、而我们要返回json格式,就要先了解http请求的返回的状态码都有哪些,了解了这些状态码才可以更好的把后端状态返回给前端。

HTTP返回的状态码也分以下几大类状态。

1xx 信息提示

2xx 成功

3xx 重定向

4xx 客户端错误

5xx 服务器错误

我们常见的主要几个状态

200 成功

401 登录失败

404 未找到

500 内部服务器错误

我们给前端返回的json对象,这个时候返回的状态码也是参照http状态码。返回json对象的时候要把状态码封装进去,同时把employee也要封装进去,那就要一个通用类来响应前端请求。例子中自定义了个操作成功的状态码,我们也可以定义其他的状态码。
在这里插入图片描述
6、通过这个响应通用类,传啥都不是问题,提前写好返回常量还是很有用的,比如ResultJson.SUCCESS_RESULT表示成功,ResultJson.SYSTEM_ERROR_RESULT 表示系统异常,等等。

7、接下来写一个返回json的方法,新方法和之前的getEmployee类似,就是把目前的对象给它加上一层壳子,让他完全符合json格式。

在这里插入图片描述
8、此时返回的结果就不一样啦,返回的信息有标记的状态码,也有文字提醒,还是返回的数据,完美。

{“code”:0,“msg”:“操作成功!!!”,“data”:{“name”:“杰克”,“passowod”:“123456”,“age”:“30”,“gender”:“男”}}

打完收工。
原文链接 :https://baijiahao.baidu.com/s?id=1637525852005664092&wfr=spider&for=pc

### 解决Spring Boot重定向控制器返回JSON数据但未完成重定向的问题 当遇到Spring Boot中的重定向接口未能正常工作的情况时,通常是因为HTTP状态码设置不当或是视图解析器配置错误。为了确保重定向功能按预期运行并能正确处理JSON响应,可以采取以下措施: #### 配置正确的HTTP状态码 对于需要执行客户端侧重定向的操作,在Controller方法中应显式指定`HttpStatus.FOUND`或` HttpStatus.TEMPORARY_REDIRECT`作为响应的状态码,并提供目标URL。 ```java import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; @RestController public class RedirectController { @GetMapping("/redirect") @ResponseStatus(HttpStatus.FOUND) public ResponseEntity<Void> performRedirect() { HttpHeaders headers = new HttpHeaders(); headers.setLocation(URI.create("http://example.com/target")); return new ResponseEntity<>(headers, HttpStatus.FOUND); } } ``` 此代码片段展示了如何通过设置适当的HTTP头来实现302 Found类型的重定向[^1]。 #### 使用 `RedirectView` 另一种方式是利用Spring MVC内置的`RedirectView`类来进行服务器端重定向操作。这种方式允许更灵活地控制重定向行为以及携带参数到新页面。 ```java import org.springframework.web.servlet.view.RedirectView; @Controller @RequestMapping("/oldPath") public class MyController { @GetMapping("") public ModelAndView redirectToNewPage(ModelAndView modelAndView) { modelAndView.setView(new RedirectView("/newPath", true)); // 可选:向模型添加属性以便传递给新的请求路径 modelAndView.addObject("message", "This page has moved."); return modelAndView; } } ``` 上述例子说明了怎样创建一个带有消息的对象并通过`ModelAndView`对象将其发送至另一个路由地址上显示出来。 #### 处理AJAX请求下的重定向 如果前端应用使用JavaScript发起异步调用(如Ajax),默认情况下浏览器不会自动跟随由服务端发出的Location头部指示的位置跳转。因此在这种场景下可能还需要额外编写JS逻辑监听特定事件以触发手动导航动作。 ```javascript $.ajax({ url: '/api/endpoint', type: 'GET', success: function(response){ window.location.href = response.redirectUrl; // 假设API返回一个包含重定向链接的数据结构 }, error: function(xhr,status,errorThrown){ console.error('Error occurred:', errorThrown); } }); ``` 这段脚本示范了一种简单的做法——即在成功接收到含有重定向信息的结果之后改变当前窗口位置从而达到间接重定向前端的效果[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值