结构体与JSON
golang中结构体与json
简介
在进行前后分离式开发时,json显得格外的重要,因为他是链接前后台重要的枢纽,在go语言中没有显式的对象,我们通常使用结构体来实现面向对象编程,本篇主要讲的是golang中结构体与json·的序列化以及反序列化。
什么是json
json是储存和交换文本信息的语法,他类似于xml,但是他比xml更加的便捷,快速,易于解析。主要使用场景就是作为前后台数据交互的枢纽,以下是一个简单json的格式:
1 | { |
将结构体序列化
在golang中有非常丰富的库,我们可以直接使用”encoding/json”包中的Marshal函数进行结构体的序列化,以下是案例:
1 | package main |
运行结果
{“name”:”huweicheng”,”age”:99}
在使用这个Marshal时有几个需要特别注意的地方:在申明结构体时字段的首写字母必须大写,这里牵扯到一个字段可见性的问题,小写代表了私有的,只能在当前包中使用,而使用Marshal时如果字段为小写那么将无法访问到字段;一般来说前台接受到的字段名称是小写的,如果将字段名称设置为大写,那么返回给前台的key也将是大写的,我们可以在申明字段的时候在后面加一个tag,作用类似于别名,写法如下:
1 | type persion struct { |
将json反序列化
例子如下:
1 | package main |
运行结果:
{“name”:”huweicheng”,”age”:99}main.persion{Name:”huweicheng”, Age:99}
- Post title: 结构体与JSON
- Create time: 2020-10-03 12:05:04
- Post link: post/36966.html
- Copyright notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Comments