GoLang -- json文件操作

Python012

GoLang -- json文件操作,第1张

json格式可以算我们日常最常用的序列格式之一了,Go语言作为一个由Google开发,号称互联网的C语言的语言,自然也对JSON格式支持很好。官方提供的Json解析包已经非常强大,我们接下来讲解Json的序列化与反序列化操作。另外还有一些第三方的Json解析库,也能够高效的操作Json对象,比如simplejson,ffjson等。下面是两个比较重要的函数:

• Json Marshal:将数据编码成json字符串

Marshal 用于将struct对象序列化到json对象中。v是interface{}类型,任何类型都实现了空接口。

1:tag中的第一个参数是用来指定别名,比如Name 指定别名为 username `json:"username"`

2:如果不想指定别名但是想指定其他参数用逗号来分隔,omitempty 指定到一个field时,如果在赋值时对该属性未赋值或者对该属性赋值为 zero value,那么将Person序列化成json时会忽略该字段

3:- 指定到一个field时,无论有没有值,将Person序列化成json时都会忽略该字段

4:string 指定到一个field时,比如Person中的Count为int类型 如果没有任何指定在序列化到json之后也是int 比如这个样子 “Count”:0,但是如果指定了string之后序列化之后也是string类型的,那么就是这个样子"Count":"0"

• struct序列化为Json

• slice序列化为Json

• map 序列化为Json

• Json Unmarshal:将json字符串解码到相应的数据结构,Unmarshal的第一个参数是[]byte,第二个参数是接受json解析的数据结构。

下面我们依次讲解Json的操作。

1:将Json序列化进入结构体

2::将Json序列化到结构体slice

3:将Json序列化进Map

4:将Json序列化进Slice

其实你的问题在与最后一段是[]byte

如果直接转json出来的数据是一个base64的字符串

所以你要做的应该是把最后的这个[]byte按字符串直接输出。

自己手动转一下吧。