package main
import (
"encoding/json"
"fmt"
)
// go get -u github.com/gin-gonic/gin
// import "github.com/gin-gonic/gin"
type Class struct {
Title string `json:"title"`
Students []Student `json:"students"`
}
type Student struct {
Id int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}
func toJson() {
c1 := Class{
Title: "三年级一班",
Students: make([]Student, 0),
}
for i := 0; i < 10; i++ {
s1 := Student{
Id: i,
Name: fmt.Sprintf("name%v", i),
Age: 18,
}
c1.Students = append(c1.Students, s1)
}
fmt.Println("----------------------------")
fmt.Printf("%#v", c1)
strC, err := json.Marshal(c1)
if err != nil {
}
fmt.Println(string(strC))
toStruct(string(strC))
}
func toStruct(jsonStr string) {
var c1 Class
err := json.Unmarshal([]byte(jsonStr), &c1)
if err != nil {
fmt.Println(err)
}
fmt.Printf("%#v", c1)
}
func main() {
toJson()
}
golang,结构体与json相互转换
最新推荐文章于 2025-02-07 10:03:05 发布
该文章展示了一个Go语言程序,它定义了`Class`和`Student`两个结构体,用于存储班级和学生信息。程序使用`json`包进行对象到JSON的编码和解码,并借助`gin-gonic/gin`框架进行数据操作。在`toJson`函数中,创建了一个班级实例并填充学生数据,然后将其转换为JSON字符串。`toStruct`函数则负责将JSON字符串反序列化回结构体。

1381

被折叠的 条评论
为什么被折叠?



