中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

json封裝數據的方法是什么

發布時間:2022-02-08 09:48:21 來源:億速云 閱讀:220 作者: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

苍山县| 博客| 永年县| 大化| 安化县| 疏附县| 寿阳县| 天峻县| 儋州市| 西和县| 增城市| 安阳县| 江都市| 遵化市| 西昌市| 枣强县| 岳池县| 乌拉特后旗| 华坪县| 大洼县| 凤台县| 眉山市| 宣武区| 扶绥县| 沅陵县| 华宁县| 康定县| 姚安县| 南郑县| 博湖县| 会理县| 洪江市| 漳州市| 额尔古纳市| 兰溪市| 阜新市| 丹寨县| 会同县| 图片| 巫山县| 博白县|