首页 归档 关于 文件 Github
×

对响应值Response的封装使用(可格式化Json格式数据)

2020-11-11 15:22:14
SpringBoot
  • Java
本文总阅读量(次):
本文字数统计(字):451
本文阅读时长(分):2

配置

返回的json中忽略null属性值,不传递
pom引入:

1
2
3
4
5
6
7
8
9
10
11
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>

第一种,在yml中写入(全局):

1
2
3
spring:
jackson:
default-property-inclusion: non_null

第二种,在应用类上写入(局部):

1
@JsonInclude(JsonInclude.Include.NON_NULL)

类

ResponseBean:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import lombok.SneakyThrows;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
* @author: Demon
* @date 2021/3/8 13:27
* @description: 返回的JSON数据结构标准
*/
@Data
@Accessors(chain = true)
public class ResponseBean implements Serializable {

private boolean success = false;
private Object data;
private String msg;
private String errCode;
private String errMsg;

@JsonIgnore
private boolean dataFormat = false;

@SneakyThrows
@Override
public String toString() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
ResponseBeanVo responseBeanVo = new ResponseBeanVo()
.setSuccess(this.isSuccess()).setData(this.getData()).setMsg(this.getMsg())
.setErrCode(this.getErrCode()).setErrMsg(this.getErrMsg());
if (this.isDataFormat()) {
return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(responseBeanVo);
} else {
return objectMapper.writer().writeValueAsString(responseBeanVo);
}
}
}

@Data
@Accessors(chain = true)
class ResponseBeanVo implements Serializable {
private boolean success;
private Object data;
private String msg;
private String errCode;
private String errMsg;

}

BaseController

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* @className: BaseController.java
* @description: 基本
* @author: Demon
*/
public abstract class BaseController {
/**
* 使用response输出JSON
* @param response response
* @param str 响应对应
*/
protected void out(HttpServletResponse response, Object str) {
PrintWriter out = null;
try {
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json");
out = response.getWriter();
out.print(str);
} catch (Exception e) {
log.error("输出JSON出错",e.getMessage());
} finally {
if (out != null) {
out.flush();
out.close();
}
}
}
}

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @ClassName: IndexController
* @Description: 控制层测试
* @Author: Demon
*/
@RestController
public class TestController extends BaseController {

@RequestMapping(method = {RequestMethod.GET,RequestMethod.POST})
public @ResponseBody void getIndex(HttpServletResponse response) {
ResponseBean responseBean = new ResponseBean();
responseBean.setSuccess(true);
responseBean.setDataFormat(true);
this.out(response,responseBean);
}
}

结果:

1
2
3
{
"success" : true
}
完
POI(3.17)解析Excel2007 - 可解析公式数据
Java的普通类获取注册的bean

本文标题:对响应值Response的封装使用(可格式化Json格式数据)

文章作者:十二

发布时间:2020-11-11 15:22:14

最后更新:2021-03-10 10:54:54

原始链接:https://www.zhuqiaolun.com/2020/11/1605079334142/1605079334142/

许可协议:署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

头像

十二

我想起那天夕阳下的奔跑,那是我逝去的青春。

分类

  • Blog4
  • ElasticSearch13
  • Git2
  • Go-FastDfs2
  • IDEA2
  • J-Package6
  • J-Tools21
  • Java2
  • JavaFx6
  • Kafka4
  • Linux2
  • Logger6
  • Maven5
  • MyBatis6
  • MyCat3
  • MySql2
  • Nginx5
  • OceanBase1
  • RabbitMq4
  • Redis6
  • SVN1
  • SpringBoot16
  • Tomcat6
  • WebService2
  • Windows2
  • kubernetes10

归档

  • 一月 20261
  • 十二月 20253
  • 八月 20252
  • 六月 20251
  • 二月 20251
  • 十二月 20244
  • 八月 202416
  • 六月 20241
  • 九月 20231
  • 八月 20231
  • 七月 20232
  • 八月 20222
  • 三月 202214
  • 二月 20224
  • 十一月 20211
  • 七月 20215
  • 六月 20213
  • 五月 20213
  • 四月 20211
  • 三月 202116
  • 二月 20212
  • 一月 20211
  • 十一月 202014
  • 十月 20201
  • 九月 202014
  • 八月 20205
  • 七月 20204
  • 六月 20208
  • 五月 20208

作品

我的微信 我的文件

网站信息

本站运行时间统计: 载入中...
本站文章字数统计:103.2k
本站文章数量统计:139
© 2026 十二  |  鄂ICP备18019781号-1  |  鄂公网安备42118202000044号
驱动于 Hexo  | 主题 antiquity  |  不蒜子告之 阁下是第个访客
首页 归档 关于 文件 Github