go语言结构体与json数据相互转换
本博文简要介绍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)
}