本博文简要介绍go语言结构体如何与json格式化字符串相互转换。
文章目录
- go语言结构体转换为json数据
- json数据转换为go结构体
go语言结构体转换为json数据
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Hobbies []string `json:"hobbies"`
}
func main() {
jsonStringData := `{"name":"Grorge","age":18,"hobbies":["Cycling","Cheese","Techno"]}`
jsonByteData := []byte(jsonStringData)
p := Person{}
err := json.Unmarshal(jsonByteData, &p)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", p)
}
json数据转换为go结构体
type Person1 struct {
Name string `json:"name,omitempty"`
Age int `json:"age,omitempty"`
Hobbies []string `json:"hobbies,omitempty"`
}
func main2() {
hobbies := []string{"Cycling", "Cheese", "Techno"}
p := Person1{
Name: "Grorge",
Age: 18,
Hobbies: hobbies,
}
fmt.Println(p)
jsonByteData, err := json.Marshal(p)
if err != nil {
log.Fatal(err)
}
jsonStringData := string(jsonByteData)
fmt.Println(jsonStringData)
}