1、结构体转json
package mainimport ("encoding/json""fmt"
)type Movie struct{Title string `json:"title"`Year int `json:"year"`Price int `json:"rmb"`Actors []string `json:"actors"`
}func main() {movie := Movie{"喜剧之王",2000,10,[]string{"xingye","zhangbozhi"}}//结构体转jsonjsonStr,err := json.Marshal(movie)if err != nil {fmt.Println("json marshal error",err)return}fmt.Printf("jsonStr = %s\n",jsonStr)
}
2、json转结构体
package mainimport ("encoding/json""fmt"
)type Movie struct{Title string `json:"title"`Year int `json:"year"`Price int `json:"rmb"`Actors []string `json:"actors"`
}func main() {movie := Movie{"喜剧之王",2000,10,[]string{"xingye","zhangbozhi"}}//结构体转jsonjsonStr,err := json.Marshal(movie)if err != nil {fmt.Println("json marshal error",err)return}fmt.Printf("jsonStr = %s\n",jsonStr)//解码的过程 json转结构体//jsonStr = {"title":"喜剧之王","year":2000,"rmb":10,"actors":["xingye","zhangbozhi"]}myMovie := Movie{}err = json.Unmarshal(jsonStr,&myMovie)if err != nil {fmt.Println("json unmarshal error",err)return}fmt.Printf("%v\n",myMovie)
}