GoLang -- json文件操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoLang -- json文件操作相关的知识,希望对你有一定的参考价值。

参考技术A

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

如何让golang 把变量解析为json,并输出为文件。

想请哪位大侠给个嵌套的例子,把一些变量作为2层嵌套,写入Json文件。

参考技术A 1. 不管golang从json文件读取数据,还是写数据到json配置文件,都需要encoding/json包,如下:import (
"encoding/json"
)

2. 编码JSON,输出数据到json文件,有方法如下:
json.Marshal(xxx) 和 json.MarshalIndent(c, "", " ") ,两个方法的区别是,MarshalIndent(c, "", " ")方法按照json格式 缩进,也就是美化了的 可读性很高的 带缩进的 Json数据。所以只要是json格式数据,当然用第二个方法啦。
3. 具体代码如下:
c := make(map[string]interface)
c["name"] = "Gopher"
c["title"] = "programmer"
c["contact"] = map[string]interface
"home": "415.333.3333",
"cell": "415.555.5555",

以上是关于GoLang -- json文件操作的主要内容,如果未能解决你的问题,请参考以下文章

golang json操作

golang文件操作摘抄

golang 文件操作

golang 文件操作

Golang系列:其他常见的文件操作

Golang字符串处理以及文件操作