GIN框架:自定义结构体到出JSON格式

先自定义结构体的赋值以及到出
在 Go 语言中,json:"errorMsg" 是一个 struct tag,用于定义结构体字段在被序列化成 JSON 格式时的名称。如果你在定义结构体字段时添加了这个 tag,那么在将结构体实例序列化为 JSON 格式时,该字段将以 “errorMsg” 作为键名;而不添加这个 tag,则默认会使用字段名作为键名。

举个例子,假设有以下结构体定义:

type Response struct {
    ErrorCode string      `json:"errorCode"`
    ErrorMsg  string      `json:"errorMsg"`
    Data      interface{} `json:"data"`
}

如果你创建了一个 Response 实例并将其序列化成 JSON 格式,结果可能如下:

{
    "errorCode": "1001",
    "errorMsg": "Something went wrong",
    "data": {...}
}

可以看到,由于添加了 json:"errorMsg" tag,ErrorMsg 字段被序列化为 JSON 时的键名为
“errorMsg”。

package API

type ApiResponseObject struct {
	ErrorCode string      `json:"errorCode"`
	ErrorMsg  string      `json:"errorMsg"`
	Data      interface{} `json:"data"`
}

func (response *ApiResponseObject) GetErrorCode() string {
	return response.ErrorCode
}

func (response *ApiResponseObject) SetErrorCode(errorCode string) {
	response.ErrorCode = errorCode
}

func (response *ApiResponseObject) GetErrorMsg() string {
	return response.ErrorMsg
}

func (response *ApiResponseObject) SetErrorMsg(errorMsg string) {
	response.ErrorMsg = errorMsg
}

func (response *ApiResponseObject) GetData() interface{} {
	return response.Data
}

func (response *ApiResponseObject) SetData(data interface{}) {
	response.Data = data
}

集合导出方法

package services

import API "awesomeProject4/common"

func ReponseJSON(errorCode string, errorMsg string, resData interface{}) API.ApiResponseObject {

	apiResponseObject := API.ApiResponseObject{}
	apiResponseObject.SetData(resData)
	apiResponseObject.SetErrorMsg(errorMsg)
	apiResponseObject.SetErrorCode(errorCode)
	
	return apiResponseObject
}

使用如果不引如 json:"键名"会到出ctx.json输出为空

ctx.JSON(http.StatusOK, ReponseJSON(API.SUCCESS.GetCode(), API.SUCCESS.GetName(), user))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值