Maison >développement back-end >Golang >Méthodes pour implémenter la sérialisation et la désérialisation JSON dans Golang

Méthodes pour implémenter la sérialisation et la désérialisation JSON dans Golang

WBOY
WBOYoriginal
2024-01-28 08:44:17614parcourir

Méthodes pour implémenter la sérialisation et la désérialisation JSON dans Golang

Comment implémenter la sérialisation et la désérialisation JSON dans Golang

JSON (JavaScript Object Notation) est un format d'échange de données couramment utilisé qui représente des données structurées sous forme de texte. Dans Golang, nous pouvons utiliser le package encoding/json intégré pour implémenter les opérations de sérialisation et de désérialisation JSON.

1. Sérialisation JSON

La sérialisation JSON fait référence à la conversion des types de données en langage Go en chaînes conformes au format JSON. Dans Golang, nous pouvons implémenter la sérialisation JSON via la fonction Marshal.

Ce qui suit est un exemple simple :

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    person := Person{
        Name: "小明",
        Age:  20,
    }

    jsonBytes, err := json.Marshal(person)
    if err != nil {
        fmt.Println("JSON序列化失败:", err)
        return
    }

    jsonString := string(jsonBytes)
    fmt.Println("JSON序列化结果:", jsonString)
}

Exécutez le code ci-dessus et le résultat de sortie est :

JSON序列化结果: {"name":"小明","age":20}

Dans l'exemple ci-dessus, nous définissons une structure Person et utilisons la fonction Marshal pour sérialiser l'instance de structure Person person sous forme de chaîne JSON. . En définissant la balise json du champ structure, nous pouvons spécifier le nom du champ en JSON.

2. Désérialisation JSON

La désérialisation JSON fait référence à la conversion de chaînes conformes au format JSON en types de données dans le langage Go. Dans Golang, nous pouvons implémenter la désérialisation JSON via la fonction Unmarshal.

Ce qui suit est un exemple simple :

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    jsonString := `{"name":"小明","age":20}`

    var person Person
    err := json.Unmarshal([]byte(jsonString), &person)
    if err != nil {
        fmt.Println("JSON反序列化失败:", err)
        return
    }

    fmt.Println("JSON反序列化结果:", person)
}

Exécutez le code ci-dessus et le résultat de sortie est :

JSON反序列化结果: {小明 20}

Dans l'exemple ci-dessus, nous définissons d'abord une chaîne au format JSON jsonString. Ensuite, utilisez la fonction Unmarshal pour désérialiser jsonString en instance de structure Person person. Il convient de noter que le premier paramètre de la fonction Unmarshal est une tranche d'octets et que la chaîne doit être convertie en tranche d'octets.

Résumé :

En utilisant les fonctions Marshal et Unmarshal dans le package encoding/json, nous pouvons implémenter des opérations de sérialisation et de désérialisation JSON dans Golang. Dans le développement réel, la sérialisation et la désérialisation JSON sont des opérations très courantes, en particulier lors de l'interaction avec le front-end ou du traitement de données API externes. La maîtrise de ces compétences peut grandement améliorer l’efficacité de notre développement.

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!

Déclaration:
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