Ich möchte Elemente hinzufügen, die nicht in den Strukturen Definitionen sind, ohne einen anderen Strukturtyp zu erstellen. Zum BeispielGolang modifizieren Json ohne Struktur
Struct.Extra1 = Nested{"yy"}
Struct.Nested.Extra2 = "zz"
Welche
{
"Value": "xx",
"Value1": "xx",
"Extra1": {
"Something", "yy"
},
"Nest": {
"Something": "xx",
"Extra2": "zz"
}
}
Solution1 führt: Ich dachte omitempty
hinzuzufügen, dies zu erreichen, aber es macht den structs komplex.
type Struct struct {
Value string
Value1 string
Nest Nested
Extra1 Nested `json:"omitempty"`
}
type Nested struct {
Something string
Extra2 string `json:"omitempty"`
}
Solution2:
myextras := make(map[string]interface{})
// get Struct.Nested in map[string]interface{} format
myextras = Struct.Nest
myextras["Extra2"] = "zz"
// get Struct in map[string]interface{} format
struct["Nest"] = myextras
struct["Extra1"] = Nested{"yy"}
// solves the problem with lots of type casting but doesn't support json tag naming
Gibt es eine bessere Lösung verschachtelte Elemente hinzuzufügen, die mit json-Tag-Unterstützung in Struktur-Datentyp dargestellt werden, nicht und könnte für die Ausgabe an Benutzer verwendet werden.
meine absolut gültige bearbeiten da von den Mods als „abgelehnt wurde, sollte sei ein Kommentar "(auch wenn das eine große Platzverschwendung als Kommentar ist) - beachte, dass du' json: "-" 'nicht brauchst, um das Serialisieren zu verhindern, da es nicht exportiert wird. –
Danke @NateFinch für die Info, macht Sinn. Ich bearbeite es in Ihrem Auftrag. –