首頁 >後端開發 >Golang >如何在 Go JSON Marshal 中省略空巢狀結構?

如何在 Go JSON Marshal 中省略空巢狀結構?

Patricia Arquette
Patricia Arquette原創
2024-12-16 02:41:14603瀏覽

How to Omit Empty Nested Structs in Go JSON Marshal?

Go JSON Marshal:省略空嵌套結構

Go 中的json:",omitempty" 標籤可讓您排除具有空白的欄位JSON 輸出的值。但是,此行為不適用於零值結構。

要省略巢狀結構(如果它有任何空白欄位),您可以使用指標而不是非指標結構。這可確保該結構在未分配非零值的情況下被視為空。

例如,考慮以下結構:

type ColorGroup struct {
    ID     int `json:",omitempty"`
    Name   string
    Colors []string
}

type Total struct {
    A *ColorGroup `json:",omitempty"` // Use pointer
    B string       `json:",omitempty"`
}

在這種情況下,如果 group .A 未分配非零值,它將被視為空並從 JSON 輸出中省略。這與使用非指標結構形成對比,後者仍會在 JSON 輸出中包含空 group.A。

以下 Playground 連結示範了此行為:https://play.golang.org/p /3i7rh4e3t3D

以上是如何在 Go JSON Marshal 中省略空巢狀結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn