- go中构造如下json串
{"name":"alpha",
"sex":"男",
"age":18,
"grade":{"gname":"wegame",
"gdesc":"qq"
}
}
在如下网址中输入以上json串可以自动生成对应的结构体
https://mholt.github.io/json-to-go/
type Autogenerated struct {
Name string `json:"name"`
Sex string `json:"sex"`
Age int `json:"age"`
Grade struct {
Gname string `json:"gname"`
Gdesc string `json:"gdesc"`
} `json:"grade"`
}
type Personal struct {
Name string `json:"name"`
Sex string `json:"sex"`
Age int `json:"age"`
Grade struct {
Gname string `json:"gname"`
Gdesc string `json:"gdesc"`
} `json:"grade"`
}
//struct 转json
func StructToJsonDemo() {
var peson1 Personal
peson1.Name="alpha"
peson1.Age=18
//peson1.Sex="男"
peson1.Grade.Gdesc="wegame"
peson1.Grade.Gname="qq"
jsonBytes, err := json.Marshal(peson1) //结构体转json序列化
if err != nil {
fmt.Println(err)
}
fmt.Println(string(jsonBytes))
}
测试效果如下:
2.构造json数组
// 结构体首字母要大写打印出来后给的别名
type Book struct {
Title string `json:"title"`
Price int `json:"price"`
}
//struct 转json
func StructToJsonDemo() {
books :=[]Book{
Book{
"alpha",
200,
},
Book{
"spider",
200,
},
}
books[0].Price=500
jsonBytes, err := json.Marshal(books) //结构体转json序列化
if err != nil {
fmt.Println(err)
}
fmt.Println(string(jsonBytes))
}