Wie entmarshaliere ich JSON-Arrays mit gemischten Datentypen in Go?

Barbara Streisand
Freigeben: 2024-11-24 03:52:09
Original
710 Leute haben es durchsucht

How to Unmarshal JSON Arrays with Mixed Data Types in Go?

Unmarshalling von JSON-Arrays mit gemischten Datentypen

Die Aufgabe, JSON-Arrays mit Werten unterschiedlicher Datentypen zu entmarshallieren, kann oft eine Herausforderung darstellen. Betrachten Sie beispielsweise das folgende JSON-Array:

{["NewYork",123]}
Nach dem Login kopieren

Problem:

Erstens ist es wichtig zu beachten, dass das bereitgestellte JSON syntaktisch falsch ist. JSON-Objekte erfordern Schlüssel für jeden Wert, daher wäre eine korrekte Darstellung entweder {"key":["NewYork",123]} oder einfach ["NewYork",123].

Außerdem beim Umgang mit JSON Bei Arrays, die aus mehreren Datentypen bestehen, tritt das Problem auf, wenn Go-Arrays einen bestimmten Typ erfordern. Dies kann dazu führen, dass Sie sich fragen, wie Sie mit solchen Situationen umgehen sollen.

Lösung:

Der Schlüssel zur Lösung dieses Problems liegt in der Verwendung der Typschnittstelle{}. Sie können damit Werte unterschiedlicher Typen verarbeiten, ohne dass eine explizite Typkonvertierung erforderlich ist. Hier ist ein Codebeispiel, das zeigt, wie es funktioniert:

import (
    "encoding/json"
    "fmt"
)

const j = `{"NYC": ["NewYork",123]}`

type UntypedJson map[string][]interface{}

func main() {
    ut := UntypedJson{}
    fmt.Println(json.Unmarshal([]byte(j), &ut))
    fmt.Printf("%#v", ut)
}
Nach dem Login kopieren

In diesem Beispiel verwenden wir UntypedJson als benutzerdefinierten Typ, der Zeichenfolgen Slices der Schnittstelle {} zuordnet. Durch die Verwendung des Typs interface{} können wir problemlos gemischte Datentypen innerhalb des JSON-Arrays verarbeiten.

Die Ausgabe des Programms wäre:

<nil>
map[string][]interface{}{"NYC": \["NewYork" 123]}
Nach dem Login kopieren

Schlussfolgerung:

Durch die Nutzung des Schnittstellentyps {} können Sie mit diesem Ansatz JSON-Arrays mit verschiedenen Datentypen effektiv entmarshalieren.

Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich JSON-Arrays mit gemischten Datentypen in Go?. 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