Maison > développement back-end > Golang > le corps du texte

Techniques courantes de sérialisation et de désérialisation Golang

王林
Libérer: 2024-01-28 10:19:06
original
631 Les gens l'ont consulté

Techniques courantes de sérialisation et de désérialisation Golang

Les technologies de sérialisation et de désérialisation couramment utilisées dans Golang nécessitent des exemples de code spécifiques

1. Le concept de sérialisation et de désérialisation

La sérialisation est le processus de conversion de structures de données ou d'objets en formats binaires ou autres, afin qu'ils puissent être transférés. sur le réseau ou enregistré sur un stockage persistant. La désérialisation consiste à reconvertir les données sérialisées en structure de données ou en objet d'origine.

Dans Golang, la sérialisation et la désérialisation sont souvent utilisées pour gérer le stockage, la transmission et la communication des données, en particulier dans les scénarios qui traitent des interactions avec des systèmes externes ou d'autres langages de programmation, tels que les opérations de bases de données, les communications réseau, etc.

2. Technologie de sérialisation et de désérialisation dans Golang

Golang fournit une variété de technologies de sérialisation et de désérialisation, notamment JSON, XML, Gob, etc. Trois des techniques de sérialisation et de désérialisation couramment utilisées seront présentées ci-dessous et des exemples de code correspondants seront fournis.

  1. Sérialisation et désérialisation JSON

JSON (JavaScript Object Notation) est un format d'échange de données léger, facile à lire et à écrire. Golang prend en charge JSON, ce qui facilite la conversion entre les objets et les formats JSON.

Voici un exemple de code qui montre comment utiliser Golang pour la sérialisation et la désérialisation JSON :

package main

import (
    "encoding/json"
    "fmt"
)

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

func main() {
    // 序列化
    person := Person{
        Name: "Alice",
        Age:  20,
    }
    jsonBytes, err := json.Marshal(person)
    if err != nil {
        fmt.Println("序列化失败:", err)
        return
    }
    fmt.Println("序列化结果:", string(jsonBytes))

    // 反序列化
    var newPerson Person
    err = json.Unmarshal(jsonBytes, &newPerson)
    if err != nil {
        fmt.Println("反序列化失败:", err)
        return
    }
    fmt.Println("反序列化结果:", newPerson)
}
Copier après la connexion
  1. Sérialisation et désérialisation XML

XML (eXtensible Markup Language) est un langage de balisage à usage général, souvent utilisé pour représenter et transmettre données structurées. Golang fournit le package XML pour prendre en charge la sérialisation et la désérialisation XML.

Voici un exemple de code qui montre comment utiliser Golang pour la sérialisation et la désérialisation XML :

package main

import (
    "encoding/xml"
    "fmt"
)

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

func main() {
    // 序列化
    person := Person{
        Name: "Alice",
        Age:  20,
    }
    xmlBytes, err := xml.Marshal(person)
    if err != nil {
        fmt.Println("序列化失败:", err)
        return
    }
    fmt.Println("序列化结果:", string(xmlBytes))

    // 反序列化
    var newPerson Person
    err = xml.Unmarshal(xmlBytes, &newPerson)
    if err != nil {
        fmt.Println("反序列化失败:", err)
        return
    }
    fmt.Println("反序列化结果:", newPerson)
}
Copier après la connexion
  1. Sérialisation et désérialisation Gob

Gob est un format de sérialisation binaire unique à Golang, qui a une efficacité d'encodage et de décodage plus élevée. Golang prend en charge Gob, ce qui permet un échange de données efficace entre les programmes Golang.

Voici un exemple de code qui montre comment utiliser Golang pour la sérialisation et la désérialisation Gob :

package main

import (
    "bytes"
    "encoding/gob"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    // 序列化
    person := Person{
        Name: "Alice",
        Age:  20,
    }
    var buf bytes.Buffer
    encoder := gob.NewEncoder(&buf)
    err := encoder.Encode(person)
    if err != nil {
        fmt.Println("序列化失败:", err)
        return
    }
    fmt.Println("序列化结果:", buf.Bytes())

    // 反序列化
    var newPerson Person
    decoder := gob.NewDecoder(&buf)
    err = decoder.Decode(&newPerson)
    if err != nil {
        fmt.Println("反序列化失败:", err)
        return
    }
    fmt.Println("反序列化结果:", newPerson)
}
Copier après la connexion

Ce qui précède est un exemple de code de techniques de sérialisation et de désérialisation couramment utilisées dans Golang. Dans le développement réel, le choix des technologies de sérialisation et de désérialisation appropriées en fonction de besoins et de scénarios spécifiques peut améliorer efficacement la lisibilité, la maintenabilité et les performances du code.

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!