Maison > développement back-end > Golang > Comment désorganiser un objet JSON dans un tableau de structures en Go ?

Comment désorganiser un objet JSON dans un tableau de structures en Go ?

Barbara Streisand
Libérer: 2024-11-29 13:26:19
original
336 Les gens l'ont consulté

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

Comment désorganiser JSON dans un tableau d'objets dans Go

Question

Comment puis-je désorganiser le JSON suivant dans un tableau d'objets dans Go langue ?

1

2

3

4

5

{

    "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}

}

Copier après la connexion

Solution

Le JSON fourni nécessite quelques modifications pour être valide, comme l'ajout de virgules entre les paires clé-valeur dans l'objet de niveau supérieur :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

{

   "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

   }

}

Copier après la connexion

Pour désorganiser ce JSON dans un tableau d'objets, vous pouvez utiliser le code suivant :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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)

}

Copier après la connexion

Dans ce code :

  • La structure Monster représente la structure du objets.
  • La structure MonsterCollection contient un pool de monstres, chacun étant saisi par une chaîne.
  • La méthode FromJson désorganise la chaîne JSON dans la carte du pool.

Le retour d'erreur est utile à des fins de débogage, vous permettant de détecter des erreurs telles qu'une syntaxe JSON non valide.

Un exemple fonctionnel peut à retrouver sur le Golang Playground : http://play.golang.org/p/4EaasS2VLL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal