Heim >Backend-Entwicklung >Golang >Wie kann ich ein JSON-Objekt mit einer unbekannten Struktur in Go ändern?

Wie kann ich ein JSON-Objekt mit einer unbekannten Struktur in Go ändern?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-27 16:58:14178Durchsuche

How Can I Modify a JSON Object with an Unknown Structure in Go?

Umgang mit JSON mit unbekannter Struktur: Unmarshaling und Änderung

In vielen Programmierszenarien kann der Umgang mit JSON-Daten mit unbekannter Struktur eine Herausforderung sein. Go bietet jedoch eine Lösung, um dieses Hindernis zu überwinden.

Stellen Sie sich eine Situation vor, in der Sie eine JSON-Zeichenfolge wie diese erhalten:

{
  "votes": {
    "option_A": "3"
  }
}

Ihr Ziel ist es, einen neuen „count“-Schlüssel mit hinzuzufügen einen Wert von „1“ für das JSON-Objekt. Da die JSON-Struktur jedoch unvorhersehbar ist, können Sie die Standardfunktion json.Unmarshal nicht mit einer vordefinierten Struktur verwenden.

Um dieser Herausforderung zu begegnen, können Sie den Typ „map[string]interface{}“ verwenden. Dadurch können Sie JSON in eine generische Karte entmarshalieren, in der Schlüssel Zeichenfolgen und Werte Schnittstellen sind, die jede Art von Daten darstellen können.

Der Code zeigt, wie dies erreicht 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)
    }

    raw["count"] = 1

    out, err := json.Marshal(raw)
    if err != nil {
        panic(err)
    }

    fmt.Println(string(out))
}

In diesem Code entpacken wir die JSON-Daten in die Rohkarte. Da die Struktur unbekannt ist, werden die Werte als Schnittstellen dargestellt.

Wir können die Karte dann ändern, indem wir ein neues Schlüssel-Wert-Paar mit „count“ als Schlüssel und 1 als Wert hinzufügen. Schließlich Marshallen wir die geänderte Karte mit json.Marshal zurück in einen JSON-String.

Die Ausgabe wird wie erwartet sein:

{"votes":{"option_A":"3"},"count":1}

Diese Technik bietet eine flexible Möglichkeit, mit JSON-Daten umzugehen unbekannte Strukturen, sodass Sie die Daten nach Bedarf ändern und anreichern können.

Das obige ist der detaillierte Inhalt vonWie kann ich ein JSON-Objekt mit einer unbekannten Struktur in Go ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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