上下文:
Go 中的JSON 編組可以將結構轉換為JSON 對象。預設情況下,所有匯出的結構欄位都包含在 JSON 輸出中。但是,可以透過指定 :",omitempty" 作為欄位標記來省略空白欄位。
問題:
如果嵌套結構為空(即具有零)其所有字段的值),即使它具有:",omitempty",它仍可能出現在JSON輸出中
解:
要省略空嵌套結構,需要使用指向結構的指標。透過這樣做,嵌套結構體的空值將被視為 nil 指標。
解釋:
來自 Go 文件:
因此,透過使用指向嵌套結構的指針,我們確保它被考慮空值,因此當 :",omitempty" 標籤為空時,會省略 JSON 輸出。
範例:
type ColorGroup struct { ID int `json:",omitempty"` Name string Colors []string } type Total struct { A *ColorGroup `json:",omitempty"` B string `json:",omitempty"` } // Empty nested struct (zero values) group := Total{ B: "abc", } // Marshal group without nested struct (only "B" field included) b, err := json.Marshal(group) if err != nil { fmt.Println("error:", err) } os.Stderr.Write(b)
以上是如何在 Go 的 JSON 封送處理中省略空巢狀結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!