您的位置 首页 golang

Go语言编程从入门到精通,json编码、json解码

json

Go语言提供了”encoding/json”包,作用是对JSON数据的解码和编码。

json编码

构建结构体

将结构体转为json , 只需要2步 :

20行 : json.Marshal() 的参数有1个 , 将上面的结构体struct传进去 , 返回值有2个 , 第1个字节集, , 第二个是错误提示 .

21行 : 通过string( ) 将字节集转换成字符串

执行结果:

有一个小问题 , 我们看到结果均采用了驼峰式显示 , 有的时候并不需要这么显式 , 比如别人需要的是username , 而我们的结构体是UserName , 那有什么办法可以显示出来可以随心所欲呢?

在8行 9行最后分别加上 `json:”username”`和 `json:”password”`后 , 显示出来的就符合我们的需求了 .

`json:”username”`和 `json:”password”`是什么呢?

对于结构体, 为数据字段指定了tag标签,将标签中的数据进行了替换, 结果就是符合我们的要求了.

注意: 默认情况下,结构体的字段为空值时候, 执行的时候会使用默认的零值显示, 如果采用结构体标签tag , 就可以判断编码json结构体的空字段的内容 , 如果是空的就忽略 .

只赋值了UserName , 那么执行结束后 , 由于PassWord没有赋值 , 那么就是默认的值,执行结果就是{“username”:”张三”,”password”:””}

我们简单修改一下

在结构体字段的标签后加入omitempty后,执行结果就忽略了空值情况.

json解码

有编码就要有解码,json解码是将字符串类型的内容转换成结构体

23行:定义了1个空的结构体

24行:声明了一个json字符串

25行:将json字符串转换为字节集

26行:采用json.Unmarshal()进行解码,2个参数,第一个是字节集,第二个是解码后的内容存放的变量, 这里为什么用指针型呢?你可以思考一下.

从执行结果上看,执行结果是符合要求的.

从url中获取json数据

结果如下

下一步怎么将获取到的内容转换成结构体呢?

文章来源:智云一二三科技

文章标题:Go语言编程从入门到精通,json编码、json解码

文章地址:https://www.zhihuclub.com/97672.shtml

关于作者: 智云科技

热门文章

网站地图