Maison >développement back-end >Golang >Pourquoi « json : impossible de regrouper le tableau en valeur Go de type main.Structure » ​​se produit-il et comment puis-je y remédier ?

Pourquoi « json : impossible de regrouper le tableau en valeur Go de type main.Structure » ​​se produit-il et comment puis-je y remédier ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 00:44:13917parcourir

Why Does

Désagrégation des tableaux et des types de structure

Lorsque vous tentez d'analyser des données JSON dans une structure, il est crucial de garantir la compatibilité entre la structure des données et le type de cible. Le message d'erreur suivant :

panic: json: cannot unmarshal array into Go value of type main.Structure

indique que l'application tente de désorganiser un tableau de JSON dans une structure qui attend un type différent.

Pour résoudre ce problème, envisagez les solutions suivantes :

  • Démarrer à un Tranche :

Si les données JSON sont un tableau d'objets, désorganisez-les en une tranche d'interface{} ou une tranche de structures spécifiques en fonction de la structure de vos données JSON :

var data []interface{}
err = json.Unmarshal(body, &data)

// Unmarshal to specific structs:
type Tick struct {
     ID string
     Name string
     ...
}

var data []Tick
err = json.Unmarshal(body, &data)
  • Modifier le Struct :

Si vous devez conserver la structure existante, pensez à modifier son type de champ pour accepter un tableau :

type Structure struct {
     stuff [][]interface{} // Change to a slice of slices
}

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:
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