GO语言的JSON03---JSON文件的序列化与反序列化
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)
}
GO语言的JSON03---JSON文件的序列化与反序列化的更多相关文章
- python学习day4之路文件的序列化和反序列化
json和pickle序列化和反序列化 json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有 ...
- 【Python】python学习文件的序列化和反序列化
json和pickle序列化和反序列化 json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有 ...
- 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤
项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...
- 【转】在C#中使用Json.Net进行序列化和反序列化及定制化
作者:Minotauros 原文地址:在C#中使用Json.Net进行序列化和反序列化及定制化 序列化(Serialize)是将对象转换成字节流,并将其用于存储或传输的过程,主要用途是保存对象的状态, ...
- .net MVC 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错,字符串的长度超过了为 maxJsonLength 属性设置的值
在.net mvc的controller中,方法返回JsonResult,一般我们这么写: [HttpPost] public JsonResult QueryFeature(string url, ...
- 使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性
"/"应用程序中的服务器错误.使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错.字符串的长度超过了为 maxJsonLength 属性设置的值. ...
- 对 JSON 数据进行序列化和反序列化
如何:对 JSON 数据进行序列化和反序列化 2017/03/30 作者 JSON(JavaScript 对象符号)是一种高效的数据编码格式,可用于在客户端浏览器和支持 AJAX 的 Web 服务之间 ...
- 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错
如题 报错提示: 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错.字符串的长度超过了为 maxJsonLength 属性设置的值.","Sta ...
- ng json格式的序列化和反序列化
ng中自带方法 angular.toJson 序列化angular.fromJson 反序列化 结果: 代码: <!DOCTYPE html> <html ng-app=" ...
- MVC JSON JavaScriptSerializer 进行序列化或反序列化时出错
MVC control中返回json格式数据一般都是如下格式 [HttpPost] public ActionResult CaseAudit(string name) { var data =&qu ...
随机推荐
- BLE广播信道空中包详解
广播信道空中包 在学习BLE的过程中,对于广播信道的空中包有许多混淆的地方,包括各个空中包的用途,帧格式等.现在想把他们做一个总结和归纳. BLE广播信道中的空中包分为有以下几种: 可连接非定向广播 ...
- 【MQ中间件】RabbitMQ -- RabbitMQ死信队列及内存监控(4)
1.RabbitMQ TTL及死信队列 1.1.TTL概述 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取:过了之后消息将自动被删除.RabbitMQ可以对消息和队列设 ...
- OO_UNIT4_SUMMARY
经过一个学期的学习,OO课程终于落下帷幕.本次博客会首先对第四单元作业的架构进行分析,再对OO课程进行总体回顾,最后是个人的建议与体会. 一.第四单元三次作业架构设计 1.第一次作业 第一次作业是对类 ...
- 1149 Dangerous Goods Packaging
When shipping goods with containers, we have to be careful not to pack some incompatible goods into ...
- 关于height:100%
要想高度百分比起作用,一般来说,要满足两个条件:其一,父标签有高度可寻,就是向上遍历父标签要找到一个定值高度(body,html另外讨论),如果中途有个height为auto或是没有设置height属 ...
- Thinkphp5之ajax分页实现_paginate()参数详细
Thinkphp5 做数据搜索需要带关键词分页,如何将查询条件带入到分页中,本文详细介绍Thinkphp5 分页带参数 一.基本使用方法: $list = Db::name('user')->w ...
- Dalvik模式下在Android so库文件.init段、.init_array段构造函数上下断点
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78244766 在前面的博客<在Android so文件的.init..ini ...
- CVE-2014-3153分析和利用
本文是结合参考资料对CVE-2014-3153的分析,当然各位看官可以看最后的资料,他们写的比我好. 在看CVE-2014-3153之前我们用参考资料4中例子来熟悉下这类漏洞是如何产生的: /** * ...
- 机器视觉-EasyDL商品检测-标准版-Demo
机器视觉-EasyDL商品检测-标准版 功能: EasyDL是百度大脑中的一个定制化训练和服务平台,EasyDL零售版是EasyDL针对零售场景推出的行业版,定制商品检测服务是EasyDL零售版的一项 ...
- NSIS制作安装包笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包
前言 做产品时,定制的自定义安装界面常有的,使用NSIS + Qt可以完美的定制基于QT的安装界面,先从纯NSIS开始,制作常规的安装包. 应用程序的发布方式 应用程序发布的时候,具备以下 ...