go_json_learn
解析嵌套类型示例:
func test3() {
	b := []byte(`{"Name":"tom","Age":20,"Email":"tom@gmail.com", "Parents" : ["tom", "kite"]}`)
	var f map[string]interface{}
	json.Unmarshal(b, &f)
	fmt.Printf("f: %v\n", f)
	for k, v := range f {
		fmt.Printf("k: %v\n", k)
		fmt.Printf("v: %v\n", v)
	}
}
创建json文件示例:
func test4() {
	//定义一个结构体
	type Person struct {
		Name   string
		Age    int
		Email  string
		Parent []string
	}
	//结构体初始化
	p := Person{
		Name:   "tom",
		Age:    20,
		Email:  "tom@gmail.com",
		Parent: []string{"big tom", "big kite"},
	}
	//打开a.json文件进行写入,如果没有此文件就创建一个,赋予权限777
	f, _ := os.OpenFile("a.json", os.O_WRONLY|os.O_CREATE, 0777)
	//在程序执行完成后,关闭文件
	defer f.Close()
	//创建这个文件writer对象的Encoder
	e := json.NewEncoder(f)
	//把结构体p的内容转换成json写入文件中
	e.Encode(p)
}
打开json文件示例:
func test5() {
	//打开a.json文件
	f, _ := os.Open("a.json")
	defer f.Close()
	//创建这个文件Reader对象的Decoder
	d := json.NewDecoder(f)
	var v map[string]interface{}
	//取出json文件里的内容并转换为map类型
	d.Decode(&v)
	fmt.Printf("v: %v\n", v)
}
将结构体转换成json:
func Marshal() {
	p := Person{
		Name:  "tom",
		Age:   20,
		Email: "tom@gmail.com",
	}
	b, _ := json.Marshal(p)
	fmt.Printf("string(b): %v\n", string(b))
}
go_json_learn的更多相关文章
随机推荐
- (数据科学学习手札144)使用管道操作符高效书写Python代码
			本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,一些比较熟悉pandas的读者 ... 
- NOI2017蚯蚓排队
			原题链接 发现 k<=50 ,在插入和删除时最多会影响不超过 k2 个串,用链表实现插入和删除,然后只需用哈希表维护每个长度不超过k的串的出现次数,哈希的话可以先用比较大的范围的值处理冲突,再映 ... 
- 15 Uncaught TypeError: Cannot set properties of null (setting ‘onclick‘)
			1.报错的代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ... 
- 『现学现忘』Git分支 — 40、分支基本操作(一)
			目录 1.创建分支 (1)创建分支 (2)图示理解 2.查看分支列表 3.分支切换 4.查看所有分支的最后一个提交 5.删除分支 1.创建分支 (1)创建分支 Git 是怎么创建新分支的呢? 很简单, ... 
- python-windows下如何将单个py文件生成exe文件
			这需要pyinstaller,在cmd执行pip install pyinstaller命令 安装完成后,执行 pyinstaller -F 目录 可执行文件于是就在同个目录下的dist目录顺利生成了 ... 
- calico和flannel的优缺点
			1.Kubernetes通信问题 1.容器间通信:即同一个Pod内多个容器间通信,通常使用loopback来实现. 2.Pod间通信:K8s要求,Pod和Pod之间通信必须使用Pod-IP 直接访问另 ... 
- C# 8.0 添加和增强的功能【基础篇】
			.NET Core 3.x和.NET Standard 2.1支持C# 8.0. 一.Readonly 成员 可将 readonly 修饰符应用于结构的成员,来限制成员为不可修改状态.这比在C# 7. ... 
- day05-JavaScript02
			JavaScript02 8.JavaScript函数 JavaScript函数介绍 函数是由事件驱动的,或者当它被调用时,执行的可重复使用的代码 例子 <!DOCTYPE html> & ... 
- Oracle生成awr报告操作步骤介绍
			AWR全称Automatic Workload Repository,自动负载信息库,是Oracle 10g版本后推出的一种性能收集和分析工具,提供了一个时间段内整个系统的报表数据.通过AWR报告,可 ... 
- K8s 生产最佳实践-限制 NameSpace 资源用量
			前言 想象一下这个场景:多个系统运行在同一套 K8s 集群上,有重要系统,也有不太重要的系统.但是某一天,某个不重要的系统突然占用了该 K8s 集群的所有资源,导致该集群上的其他系统的正常运行受到影响 ... 
