温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

json封装数据的方法是什么

发布时间:2022-02-08 09:48:21 来源:亿速云 阅读:230 作者:iii 栏目:开发技术

今天小编给大家分享一下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<T> 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封装数据的方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI