ホームページ >バックエンド開発 >Golang >Go JSON Marshal で空のネストされた構造体を省略するにはどうすればよいですか?

Go JSON Marshal で空のネストされた構造体を省略するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-16 02:41:14596ブラウズ

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"`
}

この場合、グループ.A にはゼロ以外の値が割り当てられていないため、空として扱われ、JSON 出力から省略されます。これは、JSON 出力に空の group.A が含まれる非ポインター構造体の使用とは対照的です。

次のプレイグラウンド リンクは、この動作を示しています: https://play.golang.org/p /3i7rh4e3t3D

以上がGo JSON Marshal で空のネストされた構造体を省略するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。