猿问

Golang - 从 JSON 响应中隐藏空结构

如果它们中的任何一个为空,我试图使Errorand Successstruct 消失


package main


import (

    "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结构?我认为将指针作为参数发送可以解决问题。


潇潇雨雨
浏览 288回答 2
2回答

忽然笑

这是因为appReturn.Suc和appReturn.Err不是空的;它们包含指向初始化结构的指针,而这些指针恰好在里面有 nil 指针。唯一的空指针是一个 nil 指针。将 appReturn 初始化为 j := appReturn{}
随时随地看视频慕课网APP

相关分类

Go
我要回答