JSON を効率的にエンコードしたい構造体があります。
type MyStruct struct {
*Meta
Contents []interface{}
}
type Meta struct {
Id int
}
構造体には、既知の形式のメタ データと未知の形式のコンテンツが含まれています。コンテンツ リストは実行時に入力されるため、それらを実際に制御することはできません。Go のマーシャリング速度を向上させるために、Meta 構造体に Marshaller インターフェイスを実装したいと考えています。Marshaller インターフェイスは次のようになります。
type Marshaler interface {
MarshalJSON() ([]byte, error)
}
Meta 構造体はここに示すほど単純ではないことに注意してください。Meta 構造体に Marshaler インターフェイスを実装しようとしましたが、MyStruct を JSON マーシャリングすると、結果は Meta マーシャリング インターフェイスによって返された結果のみになるようです。
私の質問は次のとおりです: 構造体を JSON マーシャリングするにはどうすればよいですか? 構造体には、独自の JSON マーシャラーを持つ埋め込み構造体と、それを持たない別の構造体が含まれています。