Heim >Backend-Entwicklung >Golang >Wie lege ich beim Parsen von JSON in Go Standardwerte fest?

Wie lege ich beim Parsen von JSON in Go Standardwerte fest?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-10 16:24:14332Durchsuche

How to Specify Default Values When Parsing JSON in Go?

Angeben von Standardwerten beim JSON-Parsen mit Go

Beim Parsen von JSON-Daten in eine Go-Struktur ist es oft wünschenswert, Standardwerte für anzugeben Felder, die im JSON nicht vorhanden sind. Das integrierte Paket „Encoding/JSON“ bietet einen unkomplizierten Mechanismus, um dies zu erreichen.

Wenn Sie json.Unmarshal aufrufen, können Sie statt einer leeren Struktur eine mit Standardwerten bereitstellen. Felder, die im JSON nicht vorhanden sind, behalten nach dem Unmarshalling ihre Standardwerte bei.

Betrachten Sie beispielsweise die folgende Struktur:

type Test struct {
    A string
    B string
    C string
}

Mit den Standardwerten „a“, „b“ und „c“ für A, B bzw. C, würde das Parsen des JSON unten eine Struktur mit dem angegebenen Standard zurückgeben Werte:

{"A": "1", "C": "3"}
var example []byte = []byte(`{"A": "1", "C": "3"}`)

out := Test{
    A: "default a",
    B: "default b",
    // default for C will be "", the empty value for a string
}
err := json.Unmarshal(example, &out)
if err != nil {
    panic(err)
}
fmt.Printf("%+v", out)

Dieser Code würde Folgendes ausgeben:

{A:1 B:default b C:3}

Wie gezeigt, überschreibt json.Unmarshal die im JSON angegebenen Werte, während nicht spezifizierte Felder ihre Standardwerte behalten. Diese Technik bietet eine praktische Möglichkeit, fehlende oder unvollständige JSON-Daten beim Parsen in Strukturen zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie lege ich beim Parsen von JSON in Go Standardwerte fest?. 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