json封装数据的方法是什么
今天小编给大家分享一下json封装数据的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
案例介绍
还记得快递一百api接口返回的JSON吗?我们请求这个链接的时候:
链接:http://www.kuaidi100.com/query?type=ems&postid=1111111111111
返回如下结果:
{ "message": "ok", "nu": "1111111111111", "ischeck": "1", "com": "ems", "status": "200", "condition": "F00", "state": "3", "data": [ { "time": "2021-05-26 09:45:08", "context": "查无结果", "ftime": "2021-05-26 09:45:08" } ]}
在看了其他api文档后我们发现,很多api返回的json都有一定的特点。比如都有status,都有message等等。接下来小编就来带你了解,一个json应该有哪些数据吧?
分析
一个json应该有哪些数据,应该由前端和后端进行讨论后得出,小编列出一些选项供各位小伙伴参考:
status:响应状态,一个json应该告诉前端返回状态,方便前端进行处理,比如出现404的时候应该通过前端跳转到404页面,响应信息就是用在这里。
message:响应信息,这个信息一般用来报错,如果没错就返回ok,有出现错误一般后端会把错误填写入这个字段中,比如权限不足这样的辅助提示,前端也可以将这个信息展示给用户。
data:用来存放数据,一般会以数组方式来存放数据,以对象数组存放的数据通常用来存放列表数据
page:存放分页的页数,有做数据分页的情况下,一般会返回一个page值。前端可以针对这个page值确定当前分页的页数
有些json还会根据前端的需求定义一些返回值,比如标题,url,时间等,json数据的定制具体还是由前后端交流后得出。
后端如何封装JSON数据
以下是小编开发过的一个web项目的json封装代码,各位小伙伴可以用作参考:
设置状态码:
public enum ResultType { SUCCESS("200", "操作成功"), FAIL("400", "操作失败"), UNAUTHORIZED("401", "权限不足"), NOT_FOUND("404", "接口不存在"), INTERNAL_SERVER_ERROR("500", "服务器内部错误"), AGAIN_LOGIN("600", "请重新登录"); private String code; private String name; ResultType(String code, String name) { this.code = code; this.name = name; } public String getCode() { return code; } public String getName() { return name; }}
json封装:
import java.io.Serializable;// 请求返回结果对象public class Result implements Serializable{ //返回状态编码 private String statusCode = ResultType.SUCCESS.getCode(); //返回提示信息 private String message = ResultType.SUCCESS.getName(); //返回结果 private T data = null; //是否成功 private Boolean success = true; //获取状态编码 public String getStatusCode() { return statusCode; } //设置状态编码@param statusCode public void setStatusCode(String statusCode) { this.statusCode = statusCode; } //获取提示信息 public String getMessage() { return message; } // 设置提示信息 @param message public void setMessage(String message) { this.message = message; } //获取返回结果@return public T getData() { return data; } //设置返回结果@param data public void setData(T data) { this.data = data; } public Boolean isSuccess() { return success; } public void setSuccess(Boolean success) { this.success = success; } public void addError() { this.addError(""); } public void addError(String message) { this.success = false; this.message = message; this.statusCode = ResultType.INTERNAL_SERVER_ERROR.getCode(); if(this.message == null || "".equals(this.message)){ this.message = ResultType.INTERNAL_SERVER_ERROR.getName(); } } public void success() { this.success(""); } public void success(String message) { this.success = true; this.message = message; this.statusCode = ResultType.SUCCESS.getCode(); if(this.message == null || "".equals(this.message)){ this.message = ResultType.SUCCESS.getName(); } } public void fail() { this.fail(""); } public void fail(String message) { this.success = false; this.message = message; this.statusCode = ResultType.FAIL.getCode(); if(this.message == null || "".equals(this.message)){ this.message = ResultType.FAIL.getName(); } } public void unauthorized() { this.unauthorized(""); } public void unauthorized(String message) { this.success = false; this.message = message; this.statusCode = ResultType.UNAUTHORIZED.getCode(); if(this.message == null || "".equals(this.message)){ this.message = ResultType.UNAUTHORIZED.getName(); } } public void notFound() { this.notFound(""); } public void notFound(String message) { this.success = false; this.message = message; this.statusCode = ResultType.NOT_FOUND.getCode(); if(this.message == null || "".equals(this.message)){ this.message = ResultType.NOT_FOUND.getName(); } } public void againLogin() { this.againLogin(""); } public void againLogin(String message) { this.success = false; this.message = message; this.statusCode = ResultType.AGAIN_LOGIN.getCode(); if(this.message == null || "".equals(this.message)){ this.message = ResultType.AGAIN_LOGIN.getName(); } }}
以上就是"json封装数据的方法是什么"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。