解析嵌套类型示例:

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的更多相关文章

随机推荐

  1. HDU3507 print article (斜率优化DP)

    状态表示:dp[i]表示打印前i个单词的最小成本:s[i]维护前缀和. 状态转移:dp[i]=min(dp[j]+(s[i]-s[j])2)+m , 0<=j<i. 换成y=kx+b的形式 ...

  2. 【Java】 DirectByteBuffer堆外内存回收

    PhantomReference虚引用 在分析堆外内存回收之前,先了解下PhantomReference虚引用. PhantomReference需要与ReferenceQueue引用队列结合使用,在 ...

  3. Stanford CoreNLP无法生成实例对象

    在服务器上运行Stanford,今日无法启动"StanfordCoreNLP"了,就是运行下面代码一直在运行,不结束,不报错. from stanfordcorenlp impor ...

  4. 快速上手Mybatis项目

    快速上手Mybatis项目 思路流程:搭建环境-->导入Mybatis--->编写代码--->测试 1.搭建实验数据库 CREATE DATABASE `mybatis`; USE ...

  5. uoj131【NOI2015】品酒大会

    题目链接 很容易想到p和q"r相似"就等价于在后缀数组中q与p之间的height值\(\ge r\),也就是说\(<r\)的那些height值会把排好序后的后缀分割成若干段, ...

  6. ZJOI2007报表统计

    题目链接 比较简单的一道平衡树题. 第三个操作可以直接用map完成(加进去一个数只会让答案变小,于是与它的前面后面一个数做差更新答案即可),只考虑前两个操作. ·维护区间内的最大最小值,以及区间相邻两 ...

  7. Silky微服务框架之服务引擎

    构建服务引擎 在注册Silky微服务应用一节中,我们了解到在ConfigureServices阶段,通过IServiceCollection的扩展方法AddSilkyServices<T> ...

  8. NAS数据存储之NFS搭建和使用

    NFS是主流异构平台的共享文件系统之一,能够支持在不同类型的系统之间通过网络进行文件共享,允许一个系统在网络上与他人共享目录和文件.NFS传输协议用于服务器和客户机之间的文件访问和共享通信,从而使客户 ...

  9. html和php里引用文件

    html里引入css文件: <link href="base.css" rel="stylesheet" type="text/css" ...

  10. JS逆向实战2--cookie-AcwScV2加密—某招标信息网

    cookies的获取 首先拿到第一次访问原链接 拿到acw_tc的值,然后放到session中去 再用这个session再次访问原链接拿到js加载的加密的真实数据.用了一些反混淆. 最后获取这个数据中 ...