在Golang中,數據的序列化和反序列化通常使用標準庫中的encoding/json包來實現。這個包提供了Marshal和Unmarshal函數,可以將數據結構序列化為JSON格式的字符串,以及將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: 30}
jsonData, err := json.Marshal(person)
if err != nil {
fmt.Println("Error marshalling data:", err)
return
}
fmt.Println(string(jsonData))
// 反序列化
var newPerson Person
err = 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等,可以根據實際需求選擇合適的序列化方式。