结构体json序列化
时间: 2023-11-16 09:46:16 浏览: 45
结构体的JSON序列化是指将结构体对象转换为JSON格式的字符串。在Go语言中,可以使用encoding/json包实现结构体的JSON序列化和反序列化。
在结构体定义中,可以使用`json:"字段名"`的标签指定JSON对象中的字段名。例如,`Name string `json:"name"` `表示将Name字段序列化为名为"name"的JSON字段。
下面是一个示例代码,展示了如何实现结构体的JSON序列化和反序列化:
```go
package main
import (
"encoding/json"
"fmt"
)
type person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
p1 := person{
Name: "嘟嘟",
Age: 3,
}
// 序列化
b, err := json.Marshal(p1)
if err != nil {
fmt.Printf("marshal failed,err:%v", err)
return
}
fmt.Printf("%#v\n", string(b))
// 反序列化
str := `{"name":"一一","age":2}`
var p2 person
err = json.Unmarshal([]byte(str), &p2)
if err != nil {
fmt.Printf("unmarshal failed,err:%v", err)
return
}
fmt.Printf("%#v\n", p2)
fmt.Println(p2)
}
```