Heim >Backend-Entwicklung >Golang >Wie entmarshaliere ich ein JSON-Objekt in ein Array von Strukturen in Go?

Wie entmarshaliere ich ein JSON-Objekt in ein Array von Strukturen in Go?

Barbara Streisand
Barbara StreisandOriginal
2024-11-29 13:26:19257Durchsuche

How to Unmarshal a JSON Object into an Array of Structs in Go?

So entmarshalieren Sie JSON in ein Array von Objekten in Go

Frage

Wie kann ich das folgende JSON in ein Array von Objekten in Go entmarshalieren? Sprache?

{
    "1001": {"level":10, "monster-id": 1001, "skill-level": 1, "aimer-id": 301},
    "1002": {"level":12, "monster-id": 1002, "skill-level": 1, "aimer-id": 302},
    "1003": {"level":16, "monster-id": 1003, "skill-level": 2, "aimer-id": 303}
}

Lösung

Der bereitgestellte JSON erfordert einige B. das Hinzufügen von Kommas zwischen Schlüssel-Wert-Paaren im Objekt der obersten Ebene:

{
   "1001":{
      "level":10,
      "monster-id":1001,
      "skill-level":1,
      "aimer-id":301
   },
   "1002":{
      "level":12,
      "monster-id":1002,
      "skill-level":1,
      "aimer-id":302
   },
   "1003":{
      "level":16,
      "monster-id":1003,
      "skill-level":2,
      "aimer-id":303
   }
}

Um diesen JSON in ein Array von Objekten zu entmarshalieren, können Sie den folgenden Code verwenden:

type Monster struct {
    MonsterId  int32 `json:"monster-id"`
    Level      int32 `json:"level"`
    SkillLevel int32 `json:"skill-level"`
    AimerId    int32 `json:"aimer-id"`
}

type MonsterCollection struct {
    Pool map[string]Monster
}

func (mc *MonsterCollection) FromJson(jsonStr string) error {
    var data =&mc.Pool
    b := []byte(jsonStr)
    return json.Unmarshal(b, data)
}

In diesem Code:

  • Die Monsterstruktur stellt die Struktur des dar Objekte.
  • Die MonsterCollection-Struktur enthält einen Pool von Monstern, die jeweils durch eine Zeichenfolge verschlüsselt sind.
  • Die FromJson-Methode entmarshmiert die JSON-Zeichenfolge in die Pool-Map.

Die Fehlerrückgabe ist für Debugging-Zwecke nützlich und ermöglicht es Ihnen, Fehler wie ungültige JSON-Syntax zu erkennen.

Ein funktionierendes Beispiel finden Sie hier auf dem Golang Playground: http://play.golang.org/p/4EaasS2VLL.

Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich ein JSON-Objekt in ein Array von Strukturen in Go?. 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