Maison >développement back-end >Golang >Apprenez la fonction json.Unmarshal dans la documentation du langage Go pour implémenter la désérialisation JSON
Apprenez la fonction json.Unmarshal dans la documentation du langage Go pour implémenter la désérialisation JSON
En langage Go, la sérialisation et la désérialisation sont des opérations très courantes. La désérialisation est le processus de conversion des données JSON en structures ou autres types de données dans le langage Go, tandis que la sérialisation est le processus de conversion des types de données dans le langage Go en chaînes JSON. La bibliothèque standard du langage Go offre une multitude de fonctions et de méthodes pour effectuer des opérations de sérialisation et de désérialisation JSON. Parmi elles, la fonction json.Unmarshal est l'une des fonctions importantes utilisées pour implémenter la désérialisation JSON.
La fonction json.Unmarshal est définie comme suit :
func Unmarshal(data []byte, v interface{}) error
Cette fonction accepte deux paramètres. Le premier paramètre est une tranche d'octets, qui doit être désérialisée. ; le deuxième paramètre est une variable d'interface vide utilisée pour recevoir des données désérialisées. La valeur de retour de cette fonction est une erreur. Si la désérialisation réussit, nil est renvoyé. Si la désérialisation échoue, le message d'erreur correspondant est renvoyé.
Ce qui suit est un exemple de code spécifique qui montre comment utiliser la fonction json.Unmarshal pour désérialiser JSON :
package main
import (
"encoding/json" "fmt"
)
type Person struct {
Name string `json:"name"` Age int `json:"age"`
}
func main( ) {
jsonData := []byte(`{"name":"Alice","age":25}`) var p Person err := json.Unmarshal(jsonData, &p) if err != nil { fmt.Println("JSON反序列化失败:", err) return } // 打印反序列化后的结果 fmt.Println("姓名:", p.Name) fmt.Println("年龄:", p.Age)
}
Dans le code ci-dessus, une structure Personne est d'abord définie, qui comporte deux champs Nom et Âge. Ensuite, créez une tranche d'octets nommée jsonData dans la fonction principale pour stocker les données JSON à désérialiser. Ensuite, déclarez une variable p de type Person pour recevoir les données désérialisées. Ensuite, appelez la fonction json.Unmarshal pour désérialiser jsonData et stocker le résultat dans la variable p.
Enfin, vérifiez si le résultat de la désérialisation est correct en imprimant les champs Nom et Âge de p.
A noter que la balise json:"name"
和json:"age"
est ajoutée aux champs de la structure. Le but de ces balises est de fournir une relation de mappage plus flexible pour les noms de champs lors de la désérialisation. Si les noms de champs des données JSON sont cohérents avec les noms de champs de la structure, ces balises peuvent être omises.
Résumé :
Avec l'aide de la fonction json.Unmarshal fournie par la bibliothèque standard du langage Go, nous pouvons facilement implémenter l'opération de désérialisation de JSON. En instanciant une structure correspondant aux données JSON et en appelant la fonction json.Unmarshal pour lire les données JSON dans les champs correspondants de la structure, nous pouvons obtenir un objet langage Go désérialisé. L'objet désérialisé peut utiliser directement le champ de structure pour accéder à la valeur dans les données JSON, offrant ainsi une méthode de fonctionnement pratique.
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!