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
Freigeben: 2024-11-29 13:26:19
Original
256 Leute haben es durchsucht

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}
}
Nach dem Login kopieren

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
   }
}
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!

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