Maison > développement back-end > Golang > Comment résoudre l'erreur « json : impossible de transformer le tableau en valeur Go » ?

Comment résoudre l'erreur « json : impossible de transformer le tableau en valeur Go » ?

Mary-Kate Olsen
Libérer: 2024-12-04 18:53:11
original
786 Les gens l'ont consulté

How to Resolve the

Résoudre l'énigme « Impossible de regrouper le tableau dans Go Value »

Comprendre le problème :

Lors de la tentative d'analyse des données à partir d'une API JSON, une erreur inattendue survient : "panique : json : impossible de désorganiser le tableau dans Accédez à la valeur de type main.Structure." Cette erreur indique une inadéquation entre les données JSON et la structure Go définie.

Identification de l'écart :

En examinant le code, il devient évident que le type Structure attend un tableau d'objets interface{} comme champ 'stuff'. Cependant, les données JSON analysées sont un tableau lui-même, et non un tableau d'objets d'interface{}.

Solution 1 : Dégrouper en une tranche

Pour résoudre l'incompatibilité , il est recommandé de désorganiser le tableau JSON en une tranche d'objets interface{}. De cette façon, la structure du tableau JSON est préservée dans le code Go :

var data []interface{}
err = json.Unmarshal(body, &data)
Copier après la connexion

Solution 2 : Définir des champs de structure spécifiques

Alternativement, si les données de réponse JSON ont une structure cohérente, envisagez de définir une structure Go qui correspond aux champs exacts présents dans la réponse. Cela permet un processus de démarshalling plus structuré et plus sûr :

type Tick struct {
     ID string
     Name string
     Symbol string
     Rank string
     Price_USD string
     ... and so on
}

var data []Tick
err = json.Unmarshal(body, &data)
Copier après la connexion

En employant l'une ou l'autre de ces approches, l'application peut analyser avec succès les données JSON et éviter l'erreur « Impossible de démarshaler le tableau en valeur Go ».

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!

source:php.cn
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