Heim >Backend-Entwicklung >Golang >Wie kann ich einem JSON-String mit unbekannter Struktur einen „count'-Schlüssel hinzufügen?

Wie kann ich einem JSON-String mit unbekannter Struktur einen „count'-Schlüssel hinzufügen?

DDD
DDDOriginal
2024-12-08 15:35:13578Durchsuche

How Can I Add a

JSON mit unbekannter Struktur dekodieren

Die Frage stellt sich, wenn versucht wird, einen JSON-String mit unbekannter Struktur zu ändern. Das Ziel besteht darin, einen „Zähl“-Schlüssel zum vorhandenen JSON hinzuzufügen:

Original JSON:

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

Gewünschter JSON:

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

Die Herausforderung liegt in der Variabilität der JSON-Struktur, was die Verwendung eines herkömmlichen JSON-Decoders mit einer Vorgabe unpraktisch macht Struktur.

Lösung: Unmarshalieren in eine Karte

Um diese Herausforderung zu meistern, besteht ein praktischer Ansatz darin, den JSON in eine Karte von Zeichenfolgen zu Schnittstellen zu entmarshalieren:

var raw map[string]interface{}
json.Unmarshal(in, &raw)

Dies ermöglicht die Manipulation der JSON-Daten auf Schlüsselwertbasis. In diesem Fall kann ein neuer „count“-Schlüssel hinzugefügt werden:

raw["count"] = 1

Um den gewünschten JSON-String zu generieren, wird die geänderte Karte in einen JSON-String remarshallt:

out, err := json.Marshal(raw)

As Als Ergebnis kann die unbekannte JSON-Struktur geändert und der Schlüssel „count“ nach Wunsch hinzugefügt werden.

Das obige ist der detaillierte Inhalt vonWie kann ich einem JSON-String mit unbekannter Struktur einen „count'-Schlüssel 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