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
Freigeben: 2024-12-08 15:27:15
Original
486 Leute haben es durchsucht

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

Ausgabe:

{"votes":{"option_A":"3"},"count":1}
Nach dem Login kopieren

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!

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