Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich dynamische JSON-Feldtypen in Go verarbeiten?

Wie kann ich dynamische JSON-Feldtypen in Go verarbeiten?

Barbara Streisand
Barbara StreisandOriginal
2024-11-19 03:16:02381Durchsuche

How Can I Handle Dynamic JSON Field Types in Go?

Umgang mit dynamischen JSON-Feldtypen in Go

Das Deserialisieren von JSON in strukturierte Daten in Go kann eine Herausforderung sein, wenn sich der Typ eines Schlüsselwerts ständig ändert . Beispielsweise kann eine API Daten in verschiedenen Formaten bereitstellen, wie zum Beispiel:

{
  "mykey": [
    {obj1},
    {obj2}
  ]
}
{
  "mykey": [
    "/obj1/is/at/this/path",
    "/obj2/is/at/this/other/path"
  ]
}

Go's Approach

Um solch dynamisches JSON zu verarbeiten, sollten Sie die Verwendung von a in Betracht ziehen flexible Datenstruktur wie die folgende:

type Data struct {
    MyKey []interface{} `json:"mykey"`
}

Diese Struktur ermöglicht die Speicherung sowohl von Zeichenfolgen als auch von Objekten im MyKey-Slice.

Unterscheidende Typen

Sobald das JSON deserialisiert ist, können Sie mithilfe eines Typschalters zwischen Zeichenfolgen und Objekten unterscheiden:

for i, v := range data.MyKey {
    switch x := v.(type) {
    case string:
        fmt.Println("Got a string: ", x)
    case map[string]interface{}:
        fmt.Printf("Got an object: %#v\n", x)
    }
}

Mit diesem Ansatz können Sie den Typ jedes Elements im MyKey-Slice bestimmen und entsprechend verarbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich dynamische JSON-Feldtypen in Go verarbeiten?. 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