Dans le langage Go, la sérialisation et la désérialisation sont généralement implémentées en convertissant les données en flux d'octets (ou autre format transportable). Voici plusieurs méthodes de sérialisation et de désérialisation couramment utilisées :
- Sérialisation et désérialisation JSON : le langage Go possède une bibliothèque standard intégrée d'encodage/json, et vous pouvez utiliser json.Marshal() pour sérialiser la structure de données au format JSON. stream, utilisez json.Unmarshal() pour désérialiser le flux d’octets au format JSON dans une structure de données.
import "encoding/json" // 序列化为JSON data, err := json.Marshal(obj) // 反序列化JSON err = json.Unmarshal(data, &obj)
- Sérialisation et désérialisation XML : le langage Go possède une bibliothèque standard intégrée d'encodage/xml. Vous pouvez utiliser xml.Marshal() pour sérialiser la structure de données dans un flux d'octets au format XML et utiliser xml.Unmarshal(. ) pour désérialiser un flux d'octets au format XML dans une structure de données.
import "encoding/xml" // 序列化为XML data, err := xml.Marshal(obj) // 反序列化XML err = xml.Unmarshal(data, &obj)
- sérialisation et désérialisation gob : le langage Go a une bibliothèque standard intégrée d'encodage/gob. Vous pouvez utiliser gob.NewEncoder() et gob.NewDecoder() pour créer des encodeurs et des décodeurs, et appeler respectivement Encode() et Decode. .() méthode de sérialisation et de désérialisation.
import "encoding/gob" // 序列化为字节流 var buffer bytes.Buffer encoder := gob.NewEncoder(&buffer) err = encoder.Encode(obj) data := buffer.Bytes() // 反序列化字节流 decoder := gob.NewDecoder(bytes.NewReader(data)) err = decoder.Decode(&obj)
- Sérialisation et désérialisation des tampons de protocole (protobuf) : le langage Go fournit une bibliothèque tierce github.com/golang/protobuf/proto, qui peut utiliser le protocole protobuf pour une sérialisation et une désérialisation efficaces.
import "github.com/golang/protobuf/proto" // 序列化为字节流 data, err := proto.Marshal(obj) // 反序列化字节流 err = proto.Unmarshal(data, obj)
Ci-dessus sont quelques méthodes de sérialisation et de désérialisation couramment utilisées. Choisissez la méthode appropriée en fonction des besoins et des scénarios spécifiques.