Dans Go, la désorganisation des valeurs JSON en types scalaires personnalisés peut être difficile en raison de la impossibilité de modifier la valeur scalaire dans la méthode UnmarshalJSON. Ce problème survient lors de l'implémentation d'UnmarshalJSON pour les types dérivés de scalaires, empêchant la conversion automatique des chaînes dans JSON en valeurs du type dérivé.
Pour résoudre ce problème, suivez ces étapes :
Voici une implémentation corrigée de la méthode UnmarshalJSON pour PersonID :
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 la balise JSON dans la structure MyType correspond le nom du champ dans l'exemple JSON. Si nécessaire, mettez à jour json : "person" pour qu'il corresponde à la balise JSON utilisée dans l'exemple.
En suivant ces étapes, vous pouvez implémenter UnmarshalJSON pour les types scalaires dérivés, permettant la conversion automatique de chaînes JSON au type de valeur souhaité. Cela permet une analyse sans effort des données JSON en types personnalisés.
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!