Heim >Backend-Entwicklung >Golang >Wie kann ich dynamischen JSON-Daten in Go eine „count'-Eigenschaft hinzufügen?
JSON-Dekodierung mit dynamischer Struktur
Beim Umgang mit JSON-Daten unbekannter oder variierender Struktur wird es schwierig, sie mithilfe vordefinierter Strukturen zu dekodieren Gehen. Um dieses Problem zu lösen, können wir einen flexibleren Ansatz anwenden.
Lösung: Unmarshalieren in eine Karte
Zuerst entmarshalieren wir den JSON in eine Map[string]-Schnittstelle {}, eine typflexible Datenstruktur in Go. Dies ermöglicht uns den Zugriff auf die JSON-Eigenschaften als Zeichenfolgen und ihre entsprechenden Werte als generische Schnittstellen.
Hinzufügen der Eigenschaft „count“
Sobald das JSON in einer Karte entmarshaled ist , wir können es frei manipulieren. In diesem Fall können wir ein neues Schlüssel-Wert-Paar mit dem Schlüssel „count“ und dem Wert der gewünschten Anzahl zuweisen.
Marshaling zurück zu JSON
Endlich , wir marshallen die geänderte Karte zurück in einen JSON-String. Bei diesem Vorgang wird die Karte in das JSON-Format serialisiert, wodurch die gewünschte Ausgabe mit der hinzugefügten Eigenschaft „count“ erzeugt wird.
Beispielcode
package main import ( "encoding/json" "fmt" ) func main() { in := []byte(`{ "votes": { "option_A": "3" } }`) // Unmarshal into a map var raw map[string]interface{} if err := json.Unmarshal(in, &raw); err != nil { panic(err) } // Add the "count" property raw["count"] = 1 // Marshal back to JSON out, err := json.Marshal(raw) if err != nil { panic(err) } fmt.Println(string(out)) }
Ausgabe:
{"votes":{"option_A":"3"},"count":1}
Das obige ist der detaillierte Inhalt vonWie kann ich dynamischen JSON-Daten in Go eine „count'-Eigenschaft hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!