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

Go语言编程从入门到精通,json编码、json解码jsonGo语言提供了"encoding/json"包,作用是对JSON数据的解码和编码。json编码构建结构体将结构体转为

json

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

json编码

构建结构体

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

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

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

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

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

执行结果:

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

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

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

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

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

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

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

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

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

我们简单修改一下

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

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

json解码

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

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

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

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

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

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

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

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

从url中获取json数据

结果如下

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/4168.html

(0)
编程小号编程小号
上一篇 2022-12-26
下一篇 2022-12-27

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注