Heim >Backend-Entwicklung >Golang >Wie gehe ich mit fehlenden JSON-Feldern mit Standardwerten in Go um?

Wie gehe ich mit fehlenden JSON-Feldern mit Standardwerten in Go um?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-13 05:54:13394Durchsuche

How to Handle Missing JSON Fields with Default Values in Go?

JSON mit Standardwerten in Go analysieren

Wenn Sie JSON in Go analysieren und auf fehlende oder undefinierte Felder stoßen, ist es oft wünschenswert, Standardwerte zuzuweisen um eine vollständige und konsistente Datendarstellung sicherzustellen.

Um dies mit dem integrierten Encoding/JSON-Paket zu erreichen, vermeiden Sie die Übergabe von an Leere Struktur zu json.Unmarshal. Initialisieren Sie stattdessen die Struktur mit Standardwerten. Betrachten wir zum Beispiel die folgende Struktur:

type Test struct {
    A string
    B string
    C string
}

Mit den Standardwerten „a“, „b“ und „c“ für die Felder A, B bzw. C können wir den JSON analysieren string:

{"A": "1", "C": 3}

in die folgende Struktur:

out := Test{
    A: "default a",
    B: "default b",
    // C defaults to the empty value ""
}

Durch Aufruf von json.Unmarshal(example, &out) wird das JSON-Marshalling in out aufgehoben, wobei bestimmte Felder mit ihren Werten aus dem JSON überschrieben werden, während die Standardwerte für die übrigen Felder beibehalten werden. Das obige Beispiel würde zu {A:1 B:default b C:3} führen.

Diese Technik bietet eine einfache Möglichkeit, fehlende Felder bei der JSON-Datenanalyse zu behandeln und gleichzeitig die Datenintegrität aufrechtzuerhalten.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit fehlenden JSON-Feldern mit Standardwerten in Go um?. 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