Maison > Article > développement back-end > 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.
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) }
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) }
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) }
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!