如果它们中的任何一个为空,我试图使Errorand Successstruct 消失package mainimport ( "encoding/json" "net/http")type appReturn struct { Suc *Success `json:"success,omitempty"` Err *Error `json:"error,omitempty"`}type Error struct { Code int `json:"code,omitempty"` Message string `json:"message,omitempty"`}type Success struct { Code int `json:"code,omitempty"` Message string `json:"message,omitempty"`}func init() { http.HandleFunc("/", handler)}func handler(w http.ResponseWriter, r *http.Request) { j := appReturn{&Success{}, &Error{}} js, _ := json.Marshal(&j) w.Header().Set("Content-Type", "application/json") w.Write(js)}输出:{ success: { }, error: { }}如何从 JSON 输出中隐藏ErrororSuccess结构?我认为将指针作为参数发送可以解决问题。
2 回答
忽然笑
TA贡献1806条经验 获得超5个赞
这是因为appReturn.Suc
和appReturn.Err
不是空的;它们包含指向初始化结构的指针,而这些指针恰好在里面有 nil 指针。唯一的空指针是一个 nil 指针。
将 appReturn 初始化为 j := appReturn{}
- 2 回答
- 0 关注
- 287 浏览
添加回答
举报
0/150
提交
取消