JSON mit unbekannter Struktur dekodieren
Im Bereich der Programmierung dient JSON (JavaScript Object Notation) oft als Mittel zur Darstellung von Daten innerhalb Softwareanwendungen. Wenn Sie jedoch auf JSON mit einer unbekannten Struktur stoßen, kann das Extrahieren spezifischer Informationen eine Herausforderung darstellen. Stellen Sie sich das folgende Szenario vor:
Sie müssen eine JSON-Zeichenfolge wie folgt verarbeiten:
{ "votes": { "option_A": "3" } }
Ihr Ziel ist es, dieses JSON durch die Einbindung eines „count“-Schlüssels zu erweitern, was zu der folgenden Ausgabe führt :
{ "votes": { "option_A": "3" }, "count": "1" }
Die Herausforderung ergibt sich aus der unbekannten Struktur des anfänglichen JSON. Herkömmliche Methoden, wie die Verwendung der json.Unmarshal-Funktion mit einer bestimmten typisierten Struktur, sind nicht mehr anwendbar.
Lösung: Unmarshal in eine Karte
Um dieses Hindernis zu überwinden, haben wir können die Flexibilität der Karten von Go nutzen. Das folgende Code-Snippet zeigt, wie JSON in eine Map[string]-Schnittstelle{} entmarshaliert wird:
package main import ( "encoding/json" "fmt" ) func main() { in := []byte(`{ "votes": { "option_A": "3" } }`) var raw map[string]interface{} if err := json.Unmarshal(in, &raw); err != nil { panic(err) } // Modify the map by adding the "count" key raw["count"] = 1 // Marshal the modified map back to JSON out, err := json.Marshal(raw) if err != nil { panic(err) } fmt.Println(string(out)) }
Durch das Unmarshaling des JSON in eine Karte erstellen wir effektiv eine typunabhängige Datenstruktur, die jede Eingabe aufnehmen kann . Es ermöglicht uns, dynamisch auf den JSON-Inhalt zuzugreifen und ihn zu ändern, ohne auf vordefinierte Typen angewiesen zu sein.
Die endgültige Ausgabe des obigen Codes lautet wie folgt:
{ "votes": { "option_A": "3" }, "count": "1" }
Dieser Ansatz bietet eine bequeme und flexible Lösung Lösung zum Dekodieren von JSON mit unbekannten Strukturen, die es Entwicklern ermöglicht, Daten effizient zu extrahieren und zu bearbeiten.
Das obige ist der detaillierte Inhalt vonWie dekodiere ich JSON mit einer unbekannten Struktur in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!