SpringBoot定制错误的Json数据

(1)自定义异常处理&返回定制Json数据

 1 @ControllerAdvice
 2 public class MyExceptionHandler {
 3     @ResponseBody
 4     @ExceptionHandler(UserNotExistException.class)
 5     public Map<String,Object> handleException(Exception e){
 6         Map<String,Object> map = new HashMap<>();
 7         map.put("code",404);
 8         map.put("message",e.getMessage());
 9         return map;
10     }
11 }

缺点:没有自适应效果,只是会返回自定义的json数据

(2)

 1 @ControllerAdvice
 2 public class MyExceptionHandler {
 3     @ExceptionHandler(UserNotExistException.class)
 4     public String handleException(Exception e, HttpServletRequest request){
 5         //Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
 6         //传入我们自己的错误状态码,4xx,5xx,否则不会进入定制错误页面的解析流程
 7         request.setAttribute("javax.servlet.error.status_code",500);
 8         Map<String,Object> map = new HashMap<>();
 9         map.put("code",404);
10         map.put("message",e.getMessage());
11         return "forward:/error";
12     }
13 }

缺点:可以自适应页面(浏览器返回错误页面,客户端返回Json数据),但不会携带我们自定义数据

(3)

1 public class MyErrorAttributes extends DefaultErrorAttributes {
2     @Override
3     public Map<String, Object> getErrorAttributes(WebRequest webRequest, boolean includeStackTrace) {
4         Map<String, Object> map =  super.getErrorAttributes(webRequest, includeStackTrace);
5         map.put("msg","coreqi");
6         return map;
7     }
8 }

响应自适应,可以携带我们自定义的数据

原文地址:https://www.cnblogs.com/fanqisoft/p/10324837.html

时间: 2024-10-13 09:45:32

SpringBoot定制错误的Json数据的相关文章

springboot使用fastjson解析json数据

一.配置pon.xml <!-- fastjson的依赖 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> 二.配置注入 @Bean public HttpMessageConverters fastJson

在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据

SpringBoot 03_利用FastJson返回Json数据

自上一节:SpringBoot 02_返回json数据,可以返回json数据之后,由于有些人习惯于不同的Json框架,比如fastjson,这里介绍一下如何在SpringBoot中集成fastjson来实现对数据的json序列化. 在使用fastjson时,可以有以下两种集成方式,但是都需要引入fastjson的依赖包 1:引入fastjson依赖包 <dependency> <groupId>com.alibaba</groupId> <artifactId&g

SpringMVC中出现&quot; 400 Bad Request &quot;错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法

最近angularjs post到后台 400一头雾水 没有任何错误. 最后发现好文,感谢作者 SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法 今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求),调试了好长时间

SpringBoot 02_返回json数据

在SpringBoot 01_HelloWorld的基础上来返回json的数据,现在前后端分离的情况下多数都是通过Json来进行交互,下面就来利用SpringBoot返回Json格式的数据. 1:新建Pesron.java @Data public class Person { //编号 private String id; // 姓名 private String name; // 性别 private String gender; } 至于@Data注解的作用,请参考Lombok教程. 2:

Silverlight项目笔记7:xml/json数据解析、MVVM下实现多级树形结构TreeView、忽视引用类型导致数据绑定错误、通过流或动态空间加载图片、虚拟目录设置、silverlight安全机制引发的问题、WebClient缓存问题

涉及的内容主要有: 1.xml/json数据解析 2.多级树形结构TreeView 3.忽视引用类型导致数据绑定错误 4.通过流或动态空间加载图片 5.虚拟目录设置 6.silverlight安全机制引发的问题 7.webclient缓存问题 1.xml/json数据解析 (1)xml数据解析 使用WebClient获取数据,获取到的数据实例化为一个XDocument,使用XDocument的Descendants(XName)方法获得对应节点的数据集合,再通过Element这个方法对数据集合进

Android混淆编译时,用到gson-2.2.2.jar进行反射解析json数据时,报ClassCastException错误

在我的代码中,我使用方法是: public synchronized <T> T parseJson(String json, Class<T> classOfT) throws Exception{ T target = null; Gson gson = new Gson(); target = gson.fromJson(json, classOfT); return target; } 之后在我的Activity中使用方式是: String addModel = JsonP

上手spring boot项目(四)之springboot如何返回json数据

在springboot整合thymeleaf中,经常会在HTML页面中接收来自服务器的json数据,然后处理json数据并在页面上渲染.那么如何在服务器中返回json类型的数据呢? 1.使用@ResponseBody注解 该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的 数据如:json,xml 等,通过 Response 响应给客户端 在controller的方法上增加@RespongBody @RequestMappi

SpringMVC客户端发送json数据时报400错误

当测试客户端发送json数据给服务器时,找不到响应路径? 原来是参数类型不符,即使是json也要考虑参数的个数和类型 解决:将age请求参数由"udf"改为"3"或任意数字即可