go语言序列化结构体数据
时间: 2024-03-24 15:29:21 浏览: 101
Golang处理JSON(二) 反序列化
Go语言序列化结构体数据可以使用JSON、XML、Gob等格式进行编码和解码,其中JSON和XML是常见的序列化格式。
以下是使用JSON格式进行结构体序列化的示例:
```go
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Gender string `json:"gender"`
}
func main() {
p := Person{
Name: "Alice",
Age: 30,
Gender: "Female",
}
data, err := json.Marshal(p)
if err != nil {
fmt.Println("JSON encoding error:", err)
return
}
fmt.Println(string(data))
}
```
输出结果为:
```json
{"name":"Alice","age":30,"gender":"Female"}
```
解析JSON格式的数据可以使用json.Unmarshal()函数:
```go
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Gender string `json:"gender"`
}
func main() {
data := []byte(`{"name":"Alice","age":30,"gender":"Female"}`)
var p Person
err := json.Unmarshal(data, &p)
if err != nil {
fmt.Println("JSON decoding error:", err)
return
}
fmt.Println(p.Name, p.Age, p.Gender)
}
```
输出结果为:
```
Alice 30 Female
```
除了JSON格式,Go语言还支持XML格式的序列化和反序列化,使用方式类似。
阅读全文