您的位置:宽带测速网 > 编程知识 > Golang中数据序列化和反序列化怎么实现

Golang中数据序列化和反序列化怎么实现

2025-06-17 15:13来源:互联网 [ ]

在Golang中,数据的序列化和反序列化通常使用标准库中的encoding/json包来实现。这个包提供了Marshal和Unmarshal函数,可以将数据结构序列化为JSON格式的字符串,以及将JSON格式的字符串反序列化为对应的数据结构。

下面是一个简单的示例:

package mainimport ("encoding/json""fmt")type Person struct {Name string `json:"name"`Ageint`json:"age"`}func main() {// 序列化person := Person{Name: "Alice", Age: 30}jsonData, err := json.Marshal(person)if err != nil {fmt.Println("Error marshalling data:", err)return}fmt.Println(string(jsonData))// 反序列化var newPerson Personerr = json.Unmarshal(jsonData, &newPerson)if err != nil {fmt.Println("Error unmarshalling data:", err)return}fmt.Println(newPerson)}

在上面的示例中,我们定义了一个Person结构体,然后使用json.Marshal函数将其序列化为JSON格式的字符串。接着使用json.Unmarshal函数将这个JSON格式的字符串反序列化为新的Person对象。

除了JSON格式,Golang还支持其他常见的数据序列化格式,比如XML、Protobuf等,可以根据实际需求选择合适的序列化方式。