Maison >développement back-end >Golang >Pourquoi JSON Unmarshal échoue-t-il lors du mappage de tableaux vers des structures Go ?

Pourquoi JSON Unmarshal échoue-t-il lors du mappage de tableaux vers des structures Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-30 09:12:17982parcourir

Why Does JSON Unmarshal Fail When Mapping Arrays to Go Structs?

Impossible de désassembler le tableau JSON dans la structure Go

Lors d'une tentative d'analyse des données d'une API JSON, un programmeur a rencontré l'erreur : " panique : json : impossible de désorganiser le tableau en valeur Go de type main.Structure."

Extrait du problème :

type Structure struct {
        stuff []interface{}
}

...

decoded := &Structure{}
err = json.Unmarshal(body, decoded)

Résultat attendu :

Une liste d'objets d'interface.

Réel Résultat :

panique : json : impossible de désorganiser le tableau dans une valeur Go de type main.Structure

Solution :

Le problème se pose lorsque essayer de désorganiser un tableau JSON dans une structure Go. Pour résoudre ce problème, on peut soit :

  • Unmarshal in a Slice :
var data []interface{}
err = json.Unmarshal(body, &data)
  • Unmarshal into a Slice de Structs :
type Tick struct {
     ID string
     Name string
     ... and so on
}

var data []Tick
err = json.Unmarshal(body, &data)

En personnalisant le struct pour correspondre à la structure des données de réponse, le processus de démarshalage analysera avec succès le tableau JSON.

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