今天说一说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数据
结果如下
下一步怎么将获取到的内容转换成结构体呢?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/4168.html