Heim >Backend-Entwicklung >Golang >Wie kann ich dynamischen JSON-Daten in Go eine „count'-Eigenschaft hinzufügen?

Wie kann ich dynamischen JSON-Daten in Go eine „count'-Eigenschaft hinzufügen?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 15:27:15484Durchsuche

How Can I Add a

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!

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