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

WBOY
Libérer: 2023-11-04 15:14:15
original
816 Les gens l'ont consulté

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"
Copier après la connexion

)

type Person struct {

Name string `json:"name"`
Age  int    `json:"age"`
Copier après la connexion

}

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)
Copier après la connexion

}

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal