初学java,想设置一个返回给客户端的数据格式,请问什么写法比较好?
我想返回一个数据类型
{
"code": "500",
"status": "fail",
"message": "fail",
"result": null,
"detail": "",
"data": {}
}
code 是状态码
message 是状态信息
data 请求的值,如果错误就返回为空
我用Java实现如下
使用fastjson来创建空JSON对象,如果有数据再给这个JSON对象赋值,感觉这个写法不太好,请问一般是怎么写?
String code = "500";
String status = "fail";
String message = "fail";
String detail = "";
JSONObject jsonTechnologyArticle = JSON.parseObject("{}");
ResponseData responseData = ResponseUtility.handleData(
code, status, message,
detail, jsonTechnologyArticle);
return responseData;
自己改良后的返回信息类型
package cn.spring.inter.entity;
import com.fasterxml.jackson.databind.ObjectMapper;
public class ResponseResult {
// 定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();
// 响应业务状态
private String status;
// 响应消息
private String msg;
// 响应中的数据
private Object data;
// 响应提示信息
private String detail;
public static ResponseResult build(String status, String msg, Object data) {
return new ResponseResult(status, msg, data);
}
public static ResponseResult build(String status, String msg, Object data, String detail) {
return new ResponseResult(status, msg, data, detail);
}
public static ResponseResult ok(Object data) {
return new ResponseResult(data);
}
public static ResponseResult errorMsg(String msg) {
return new ResponseResult("500", msg, null);
}
public static ResponseResult errorMap(Object data) {
return new ResponseResult("501", "error", data);
}
public static ResponseResult errorTokenMsg(String msg) {
return new ResponseResult("502", msg, null);
}
public static ResponseResult errorException(String msg) {
return new ResponseResult("555", msg, null);
}
public static ResponseResult errorUserQQ(String msg) {
return new ResponseResult("556", msg, null);
}
public ResponseResult() {
}
public ResponseResult(String status, String msg, Object data, String detail) {
this.status = status;
this.msg = msg;
this.data = data;
this.detail = detail;
}
public ResponseResult(String status, String msg, Object data) {
this.status = status;
this.msg = msg;
this.data = data;
}
public ResponseResult(Object data) {
this.status = "200";
this.msg = "SUCCESS";
this.data = data;
}
public Boolean isOK() {
return this.status == "200";
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
code
、status
可以采用枚举来定义举个例子,可以考虑使用静态方法来生成返回对象(以下代码仅供参考,跑是跑不起来的):
另外诸如
code
、status
可以采用枚举来定义,message
可以用资源字典来做国际化/本地化。其实也可以看看 mall 这个项目中的方式,都差不多。
ResponseEntity
了解一下这个