Maison > développement back-end > Golang > le corps du texte

Comment décomposer les chaînes JSON en types Go personnalisés dérivés de valeurs scalaires ?

Barbara Streisand
Libérer: 2024-11-19 12:54:02
original
296 Les gens l'ont consulté

How to Unmarshal JSON Strings into Custom Go Types Derived from Scalar Values?

Comment JSON Unmarshal peut-il gérer les types de valeurs dérivés de scalaires dans Go ?

Dans Go, les valeurs scalaires sont souvent utilisées pour représenter des types de données simples comme les entiers et les chaînes. Les types personnalisés dérivés de ces valeurs scalaires peuvent nécessiter un traitement spécial lors du démarshalage JSON pour garantir un mappage précis.

Énoncé du problème

Implémentez la méthode UnmarshalJSON pour un type personnalisé qui étend un entier scalaire en Go. L'objectif est de convertir automatiquement les chaînes JSON entrantes en valeurs de ce type personnalisé.

Solution

Pour surmonter les limitations d'UnmarshalJSON attendant une structure, utilisez les étapes suivantes :

  1. Utilisez un récepteur de pointeur : Utilisez un récepteur de pointeur pour la méthode UnmarshalJSON. Les récepteurs de valeurs perdent les modifications lors du retour de la méthode.
  2. Démarsalez le texte JSON :Désorganisez le texte JSON pour obtenir une chaîne simple, en supprimant toute citation JSON.
  3. Recherche et Attribuer : Utilisez la fonction Lookup pour récupérer une instance du type personnalisé en fonction de la chaîne analysée. Attribuez cette valeur au récepteur du pointeur.

Exemple de mise en œuvre

func (intValue *PersonID) UnmarshalJSON(data []byte) error {
  var s string
  if err := json.Unmarshal(data, &s); err != nil {
    return err
  }
  *intValue = Lookup(s)
  return nil
}
Copier après la connexion

Considérations supplémentaires

  • Assurez la cohérence entre les balises JSON et les données JSON en cours de démarshalisation.
  • Utilisez des pointeurs pour éviter de perdre les modifications apportées lors du démarshalage.
  • Envisagez une méthode MarshalJSON personnalisée si vous souhaitez personnaliser la sérialisation JSON.

Avec ces techniques mises en œuvre, vous pouvez efficacement désorganiser les chaînes JSON dans vos types personnalisés dérivés de valeurs scalaires dans 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