刚接触 Go 语言中结构体与 JSON 数据时,看不懂结构体中反引号``那部分内容表述的什么意思。查阅相关书籍后理解了。了解到了结构映射至 JSON 的规则。
样例
Go 代码
// 声明 Model 结构
type Model struct {
// 反引号中的内容表示该字段的结构标签
// 对于名字为 id 的 JSON 键,用户只需在结构里创建一个任意名字的字段(比如命名为ID)
// 并将该字段的结构标签设置为 `json:"id"`,就可以把 JSON 键 id 的值存储到这个字段里面。
ID int `gorm:"primary_key" json:"id"`
CreatedOn int `json:"created_on"`
ModifiedOn int `json:"modified_on"`
}
API 调试工具(json 数据)
分析 JSON
分析程序首先要做的就是把 JSON 的分析结果存储到一些结构里面,然后通过访问这些结构来提取数据。
分析JSON的两个步骤:
1. 创建一些用于包含 JSON 数据的结构;
2. 通过 json.Unmarshal 函数,把 JSON 数据解封到结构里面。
把结构映射至 JSON 的规则:对于名字为<name>的 JSON 键,用户只需要在结构里创建一个任意名字的字段(一般与<name>含义一致),并将该字段的结构标签设置为 `json:"<name>"` ,就可以把 JSON 键 <name> 的值存储到这个字段里面。
同理:可以明白使用 API 调试工具发送的“form-data”类型数据时,结构体中的结构标签为`form:"<name>"`
总结:
ID int `gorm:"primary_key" json:"id"`
CreatedOn int `json:"created_on"`
ModifiedOn int `json:"modified_on"`
字段 ID 不仅对应 json 中的 id,在 gorm 中还标记为 primary_key(主键);
字段 CreatedOn 对应 json 中的 created_on;
字段 ModifiedOn 对应 json 中的 modified_on。