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() {
}
golang 中的序列化和反序列化
最新推荐文章于 2024-03-31 09:00:47 发布