Désagrégation des chaînes JSON en types scalaires dérivés dans Go
Dans Go, vous pouvez dériver un nouveau type scalaire à partir d'un type existant. Cependant, l'implémentation d'UnmarshalJSON pour de tels types peut être difficile en raison des limitations de la bibliothèque standard.
Pour gérer correctement cela, il est essentiel d'utiliser un récepteur de pointeur pour la méthode UnmarshalJSON. Les récepteurs de valeurs ne conservent pas les modifications apportées au sein de la méthode.
L'argument transmis à UnmarshalJSON est du texte JSON. Cela peut être désorganisé en une chaîne simple, en supprimant toute citation.
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 }
De plus, assurez-vous que les balises JSON de votre code correspondent aux clés des données JSON que vous désorganisez.
json.Unmarshal([]byte(`{"person": "Ralph", "count": 4, "greeting": "Hello"}`), &m);
En suivant ces étapes, vous pouvez implémenter efficacement UnmarshalJSON pour les types scalaires dérivés, permettant la conversion automatique des chaînes JSON en valeurs de votre type personnalisé.
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!