Heim > Backend-Entwicklung > Golang > Wie dekodiere ich JSON mit einer unbekannten Struktur in Go?

Wie dekodiere ich JSON mit einer unbekannten Struktur in Go?

Barbara Streisand
Freigeben: 2024-12-28 10:23:11
Original
369 Leute haben es durchsucht

How to Decode JSON with an Unknown Structure in Go?

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" 
  } 
}
Nach dem Login kopieren

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" 
}
Nach dem Login kopieren
Nach dem Login kopieren

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))
}
Nach dem Login kopieren

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" 
}
Nach dem Login kopieren
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage