Implementierung von Json Marshaller über Embedded Stuct in Go

Ich habe eine Struktur, die ich effizient JSON codieren möchte:

type MyStruct struct {
    *Meta
    Contents []interface{}
}

type Meta struct {
    Id int
}

Die Struktur enthält Metadaten einer bekannten Form und Inhalte einer unbekannten Form. Die Inhaltsliste wird zur Laufzeit gefüllt, sodass ich nicht wirklich die Kontrolle über sie habe. Um die Marshalling-Geschwindigkeit von Go zu verbessern, möchte ich die Marshaller-Schnittstelle über die Meta-Struktur implementieren. Die Marshaller-Oberfläche sieht folgendermaßen aus:

type Marshaler interface {
        MarshalJSON() ([]byte, error)
}

Bitte beachten Sie, dass die Metastruktur nicht so einfach ist wie hier gezeigt. Ich habe versucht, die Marshaler-Schnittstelle über die Meta-Struktur zu implementieren, aber es scheint, dass, wenn ich dann MyStruct mit JSON marshalle, das Ergebnis nur das Ergebnis ist, das von der Meta-Marshalling-Schnittstelle zurückgegeben wird.

Meine Frage lautet also: Wie kann ich mit JSON eine Struktur marshallen, die eine eingebettete Struktur mit einem eigenen JSON-Marshaller und eine andere Struktur ohne eine enthält?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage