omitempty踩坑
- 场景:json、struct转换
- 描述:在http response结构体中不要随意使用
- 陷阱:
- 无法忽略掉嵌套结构体
- 给它赋的值恰好等于默认空值,会被忽略
- 补充:因为go的变量有默认值,int为0,会导致业务定义的正常值0不返回
- 举例:
type PdfResponse struct {
Ret uint8 `json:"ret,omitempty"`
Data *RetData `json:"data,omitempty"`
Msg string `json:"msg"`
}
resp := &PdfResponse{
Ret: 0️,
Msg: "success",
Data: &RetData{},
}
c.JSON(http.StatusOK, resp)
//result:
//{"data":null,"msg":"success"}
2025年6月21日...大约 19 分钟