Heim >Backend-Entwicklung >Golang >Wie analysiere ich JSON-Arrays in Go mit dem „json'-Paket?

Wie analysiere ich JSON-Arrays in Go mit dem „json'-Paket?

Linda Hamilton
Linda HamiltonOriginal
2024-12-10 14:03:10575Durchsuche

How to Parse JSON Arrays in Go Using the `json` Package?

JSON-Arrays in Go mit dem JSON-Paket analysieren

Problem: Wie können Sie einen JSON-String analysieren, der ein darstellt Array in Go mit dem JSON-Paket?

Code Beispiel:

Betrachten Sie den folgenden Go-Code:

type JsonType struct {
    Array []string
}

func main() {
    dataJson := `["1", "2", "3"]`
    arr := JsonType{}
    unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array)
    log.Printf("Unmarshaled: %v", unmarshaled)
}

Erklärung:

Der bereitgestellte Code definiert einen Typ JsonType mit einem Array von Saiten. Anschließend wird versucht, eine JSON-Zeichenfolge in das Array-Feld einer JsonType-Instanz zu entmarshalieren. Es gibt jedoch ein Problem mit dem Code.

Lösung:

Der Rückgabewert von Unmarshal ist ein Fehler. Der Code gab ursprünglich diesen Fehler anstelle des nicht gemarshallten Arrays aus. Um das Problem zu beheben, können Sie den Code wie folgt ändern:

err := json.Unmarshal([]byte(dataJson), &arr)

Darüber hinaus können Sie den Code vereinfachen, indem Sie ihn direkt in das Array-Slice entmarshagen, ohne einen benutzerdefinierten Typ zu verwenden:

var arr []string
_ = json.Unmarshal([]byte(dataJson), &arr)

Dies Code weist das nicht gemarshalte Slice arr zu. Der Unterstrich vor der Zuweisung unterdrückt den Fehlerwert, der in diesem Code nicht verwendet wird.

Durch die effektive Verwendung des JSON-Pakets können Sie JSON-Arrays in Go problemlos analysieren.

Das obige ist der detaillierte Inhalt vonWie analysiere ich JSON-Arrays in Go mit dem „json'-Paket?. 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