今天我们看一下如何用golang的标准库(Encoding/Json)实现对json数据的解析。
json数据格式是大多数api通信使用的一种数据传输格式。
如果想了解json数据格式的同学,请移步:https://baike.baidu.com/item/JSON/2462549
不清楚golang环境搭建运行HelloWorld的同学,请参考:
sunny翰:golang环境搭建之“Hello world”zhuanlan.zhihu.com言归正传,我们从以下几个方面介绍Encoding/Json库的使用。
1、创建一个json数据的文件(users.json)
{
2、读取users.json文件
package
>> go run main.go
>> 输出:Successfully Opened users.json
3、构造users.json文件中的结构体Struct
我们需要根据users.json文件中的json格式,构造结构体。
可以利用网上开源工具:https://mholt.github.io/json-to-go/
这样我们构造结构体的时候,能达到事半功倍的效果。
type
我们得到了这样的json结构体,看上去比较复杂,不宜读。接下来,我们对结构体进行拆解:
type Users struct {
Users []User `json:"users"`
}
type User struct {
Name string `json:"name"`
Age int `json:"Age"`
Social Social `json:"social"`
}
type Social struct {
Zhihu string `json:"zhihu"`
Weibo string `json:"weibo"`
}
这样来看,整个结构体就相当的清晰了。
4、解析Json文件的数据
这里会用到json.Unmarshal()函数
package
>> go run main.go
运行结果如下:
Successfully Opened users.json
User Name: Aric
User Age: 27
Zhihu Url: https://zhihu.com
Weibo Url: https://weibo.com
User Name: gloria
User Age: 22
Zhihu Url: https://zhihu.com
Weibo Url: https://weibo.com