前言
首先,采用的是springboot,在controller中使用了@RestController或者@ResponseBody注解,返回的数据本身就是json格式。但是这样的json串在前后端分离使用中并不满足实际的效果,因此需要进行相应的封装,以满足前端能够正确处理获取的数据。
一、准备
1.1 使用的是fastjson,因此需要pom文件引入包
版本随你
com.alibaba
fastjson
1.2.58
1.2 统一的返回规范必不可少
一般情况下,状态、信息、数据这三项已经满足大部分需要。如果需求特殊可以自己修改。
序列化
值得说一下的是重写tostring时就将其转换为json串JSON.toJSONString(this);。本文所用的返回类进行了实例化,因此采用JSON.方法,也可以通过JSONObject(已经实现序列化,返回类不需要再次序列化)的方发进行转换。
为空处理
利用fastjson自带的注解来处理返回时无值得情况,统一显示为null。@JSONField(serialzeFeatures = {SerializerFeature.WriteMapNullValue})
import java.io.Serializable;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
/**
*
* @Description: 统一API响应结果封装
* @author ZhiPengyu
* @date: 2020年4月29日 下午2:48:18
*/
public class ResponseBody implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1886106011131539131L;
private String code;
private String message;
@JSONField(serialzeFeatures = {SerializerFeature.WriteMapNullValue})
private Object data;
/* set and get */
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = mess