Goの構造体の埋め込みとJSON TL;DR Goの構造体埋め込みはJSON出力時に基本的にフラット化されます(ネストされない) 例外として、JSONタグを指定するとネストされ、インターフェース型では型名がキーになります。 競合時はタグ付き優先、複数競合なら無視というルールがあります。 はじめに Goで埋め込みのある構造体をAPIで送受信するコードを書いているときに、個人的な直感と異なる動作に遭遇したので少し調べてみました。 埋め込んだ構造体はネストされたJSONとして出力されると考えていたのですが、実際にはフラットに展開されました。 調査したところ公式にこのような挙動とのことなので軽くまとめてみました。 挙動の確認:コードと結果 基本挙動:埋め込みはフラットに展開される まず、具体的なコードで確認してみましょう。以下はAddress構造体をPersonVal構造体に埋め込む例です。 pa
