只有可导出的成员可以转换为JSON字段。
//结构体成员名首字母大写才可以转换JSON
type Movie struct {
Title string //字符串
Year int `json:"date"` //原生字符串 对应到date的成员标签 键json控制包encoding/json行为,同理其他包encoding/...
}
m1 := new(Movie)
m1.Title = "hang"
m1.Year = 1999
//转换为JSON
data, err := json.Marshal(m1)
if err != nil {
log.Panic(err)
}
fmt.Printf("%s\n", data)
//格式化json
data1 ,err := json.MarshalIndent(m1, "", " ")
if err != nil {
panic(err)
}
fmt.Printf("%s\n", data1)
//json解码为Go数据结构
var m2 Movie
if err := json.Unmarshal(data, &m2); err != nil {
log.Fatal(err)
}
fmt.Println(m2)