Ich habe eine Struktur wie folgt:JSON: eine bevölkerten Struktur in eine neue Struktur Nesting
type my_struct struct {
First string `json:"first"`
Second string `json:"second"`
Number int `json:"number"`
}
Wenn ich das in JSON Marschall, ist es sehr einfach JSON gibt, wie man es erwarten würde:
var output_json []byte
output_json, _ = json.Marshal(output)
fmt.Println(string(output_json))
Ergebnis:
{"first":"my_string","second":"another_string","number":2}
alles so weit in Ordnung!
Was ich tun möchte, bevor Sie diese Struktur in JSON Marshalling, ist Nest in einer anderen Struktur. Die resultierende Ausgabe wäre JSON, das wie folgt aussieht:
{
"fields": {
"first": "my_string",
"number": 2,
"second": "another_string"
},
"meta": "data"
}
Wie kann ich das tun?
Das Problem, das ich hier habe, ist, dass ich _always_ big_struct nicht brauche, es ist eine bedingte Sache. Gibt es einen Weg, es zu tun, ohne es so zu machen? – jaxxstorm
@Frap Sie können 'My_struct' nicht speziell mit einem neuen Feld initialisieren, das Sie nicht deklariert haben. Go hat nicht die gleiche Art von objektorientierter Vererbung wie in Python. Sie können jedoch eine bedingte anonyme Struktur deklarieren und 'My_struct' darin innerhalb von Sekunden einnisten. Ich habe meine Antwort mit einem zweiten Beispiel bearbeitet. – nosequeldeebee