使用gob和base64可以解决问题,例如:
import ( "encoding/base64" "encoding/gob" "bytes")type SX map[string]interface{}// go binary enprerfunc ToGOB64(m SX) string { b := bytes.Buffer{} e := gob.NewEnprer(&b) err := e.Enpre(m) if err != nil { fmt.Println(`failed gob Enpre`, err) } return base64.StdEncoding.EnpreToString(b.Bytes())}// go binary deprerfunc FromGOB64(str string) SX { m := SX{} by, err := base64.StdEncoding.DepreString(str) if err != nil { fmt.Println(`failed base64 Depre`, err); } b := bytes.Buffer{} b.Write(by) d := gob.NewDeprer(&b) err = d.Depre(&m) if err != nil { fmt.Println(`failed gob Depre`, err); } return m}当您需要序列化自定义结构或类型(例如
Sessionstruct)时,只需添加以下行:
func init() { gob.Register(SX{}) gob.Register(Session{}) }


