标签:文件 JSON03 string err json JSON human 序列化 os
package main import ( "encoding/json" "fmt" "os" ) type Human2 struct { Name string Age int Rmb float64 Gender bool Hobbies []string } func NewHuman2(name string, age int,rmb float64,hobbies []string) *Human2 { human := new(Human2) human.Name = name human.Age = age human.Rmb = rmb human.Hobbies = hobbies return human } /*编码结构体,map,切片到JSON文件*/ func main061() { dstFile, _ := os.OpenFile(`编码文件`, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666) defer dstFile.Close() encoder := json.NewEncoder(dstFile) zqd := NewHuman2("张全蛋", 20,0.5,[]string{"抽烟", "喝酒","烫头"}) zld := NewHuman2("张lia蛋", 30,0.5,[]string{"抽烟", "喝酒","烫头"}) //dataMap := make(map[string]interface{}) //dataMap["title"] = "东契奇字母哥创历史当选月最佳" //dataMap["date"] = "2019-12-04" //dataMap["author"] = "至尊狗仔" //dataMap["readers"] = 99999999 humans := make([]Human2, 0) humans = append(humans, *zqd, *zld) err := encoder.Encode(humans) if err != nil{ fmt.Println("编码human到json文件失败,err=",err) return } fmt.Println("编码human到json文件成功") } /*解码json文件为GO数据*/ func main() { //打开要编码的文件 srcFile, _ := os.Open(`编码文件`) defer srcFile.Close() //创建于JSON结构想匹配的GO语言数据 //retSlice := make([]Human2,0) retSlice := make([]map[string]interface{}, 0) //创建JSON文件的解码器 decoder := json.NewDecoder(srcFile) //解码文件数据到GO数据的地址中 err := decoder.Decode(&retSlice) //检查错误 if err != nil{ fmt.Println("解码json文件失败,err=", err) return } //打印结果 fmt.Println("解码成功",retSlice) }
标签:文件,JSON03,string,err,json,JSON,human,序列化,os 来源: https://www.cnblogs.com/yunweiqiang/p/11980694.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。