Interprétation des documents en langage Go : Explication détaillée de l'interface encoding/json.Unmarshaler, des exemples de code spécifiques sont requis
Introduction :
Dans le langage Go, le package encoding/json fournit une série de fonctions et d'interfaces pour gérer le l’encodage et le décodage des données JSON fonctionnent. Parmi eux, l'interface json.Unmarshaler joue un rôle important dans le décodage des données JSON. Cet article expliquera en détail l'interface json.Unmarshaler et fournira des exemples de code spécifiques.
Introduction à l'interface json.Unmarshaler : L'interface
json.Unmarshaler définit une méthode pour un type personnalisé permettant de contrôler la manière dont les données JSON sont décodées. L'interface est définie comme suit :
type Unmarshaler interface { UnmarshalJSON([]byte) error }
Unmarshaler n'a qu'une seule méthode d'erreur UnmarshalJSON([]byte), qui est utilisée pour décoder la tranche d'octets JSON entrante et la convertir en type cible.
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email"` } func (p *Person) UnmarshalJSON(data []byte) error { var v struct { Name string `json:"Name"` Age int `json:"Age"` Email string `json:"Email"` } err := json.Unmarshal(data, &v) if err != nil { return err } p.Name = v.Name p.Age = v.Age p.Email = v.Email return nil } func main() { data := []byte(`{"Name":"John Doe","Age":30,"Email":"johndoe@example.com"}`) var p Person err := json.Unmarshal(data, &p) if err != nil { fmt.Println("Error:", err) return } fmt.Println("Name:", p.Name) fmt.Println("Age:", p.Age) fmt.Println("Email:", p.Email) }
Dans le code ci-dessus, nous définissons une structure Personne, dans laquelle les champs Nom, Âge et Email représentent respectivement le nom, l'âge et l'e-mail. La méthode d'erreur UnmarshalJSON([]byte) est implémentée dans la structure Person, à travers laquelle la tranche d'octets JSON entrante est décodée en un objet de type Personne.
Dans la fonction principale, nous définissons une donnée json puis la décodons en un objet p de type Person. Enfin, imprimez chaque champ de Personne.
J'espère que cet article vous aidera à comprendre le rôle et l'utilisation de l'interface json.Unmarshaler.
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!