1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | package store import( "io/ioutil" "encoding/json" "os" ) type Monster struct{<!-- --> Name string `json:"name"` Age uint `json:"age"` Skill string `json:"skill"` } //序列化本实体对象 方法 func (this *Monster) Store(savePath string ) bool {<!-- --> marshalSplice,err := json.Marshal((*this)) if err != nil {<!-- --> return false } err = ioutil.WriteFile(savePath,marshalSplice,0666) if err !=nil {<!-- --> return false } return true } //反序列化方法 func (this *Monster) Restore(unMarPath string) Monster {<!-- --> var resultMon Monster //1. 判断文件路径是否合法 _,err := os.Lstat(unMarPath) if os.IsNotExist(err) {<!-- --> return resultMon } //2. 读取文件内容 readSplice,rdErr := ioutil.ReadFile(unMarPath) if rdErr != nil {<!-- --> return resultMon } err = json.Unmarshal(readSplice,&resultMon) if err != nil {<!-- --> return Monster{<!-- -->} } return resultMon } func main() {<!-- --> } |