Maison > développement back-end > Golang > Comment puis-je désorganiser JSON avec des espaces dans les noms de clés à l'aide de « encoding/json » de Go ?

Comment puis-je désorganiser JSON avec des espaces dans les noms de clés à l'aide de « encoding/json » de Go ?

Mary-Kate Olsen
Libérer: 2024-12-25 07:57:10
original
516 Les gens l'ont consulté

How Can I Unmarshal JSON with Spaces in Key Names Using Go's `encoding/json`?

Noms de clés JSON avec des espaces : la désérialisation rendue possible

La désérialisation de données JSON avec des clés complexes contenant des espaces peut souvent poser des problèmes lors de la désérialisation. Examinons un exemple spécifique utilisant la bibliothèque encoding/json dans Go.

Problème :

Considérez le schéma JSON suivant :

[
  {"Na me": "Platypus", "Order": "Monotremata"},
  {"Na me": "Quoll", "Order": "Dasyuromorphia"}
]
Copier après la connexion

Utilisation la bibliothèque d'encodage/json standard pour désorganiser ces données dans le Go suivant struct :

type Animal struct {
    Name  string `json:"Na me"`
    Order string `json:"Order,omitempty"`
}
Copier après la connexion
Copier après la connexion

résulte dans un champ "Nom" vide en raison de l'espace dans la clé JSON.

Cause :

L'espace dans la clé JSON confond le processus de démarchage. La bibliothèque essaie de faire correspondre la clé "Na me" avec un champ dans la structure Animal, mais il n'y a pas de champ correspondant.

Solution :

Pour résoudre ce problème , assurez-vous que les balises struct field dans la balise json spécifient les noms de clés corrects, y compris les espaces :

type Animal struct {
    Name  string `json:"Na me"`
    Order string `json:"Order,omitempty"`
}
Copier après la connexion
Copier après la connexion

Avec ce balisage révisé, le démarshalling Le processus peut mapper avec succès les clés JSON aux champs de structure corrects, ce qui donne le résultat attendu :

[
  {Name:Platypus Order:Monotremata}
  {Name:Quoll Order:Dasyuromorphia}
]
Copier après la connexion

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