先自定义结构体的赋值以及到出
在 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))