概述
- 1、定义实体类
package model
import (
"database/sql/driver"
"encoding/json"
"gorm.io/gorm"
)
type Profile struct {
Email string `json:"email"`
Mobile string `json:"mobile"`
}
type UserEntity struct {
gorm.Model
Name string `json:"name"`
Profile Profile `json:"profile" gorm:"type:json;comment:'个人信息'"`
}
// Value 存储数据的时候转换为字符串
func (t Profile) Value() (driver.Value, error) {
return json.Marshal(t)
}
// Scan 读取数据的时候转换为json
func (t *Profile) Scan(value interface{}) error {
return json.Unmarshal(value.([]byte), &t)
}
func (t *UserEntity) TableName() string {
return "user"
}
- 2、插入数据
utils.Db.AutoMigrate(&model.UserEntity{})
u := model.UserEntity{
Name: "张三3",
Profile: model.Profile{
Email: "233@qq.com",
Mobile: "120",
},
}
utils.Db.Create(&u)
- 3、查询出
json
数据
router := gin.Default()
router.GET("/", func(ctx *gin.Context) {
var user model.UserEntity
utils.Db.Debug().Where("profile->'$.mobile'=(?)", "120").First(&user)
ctx.JSON(http.StatusOK, gin.H{
"code": 0,
"message": "成功",
"data": user,
})
})
router.Run(":9999")
最后
以上就是含蓄摩托为你收集整理的简单记录下gorm中存储json的全部内容,希望文章能够帮你解决简单记录下gorm中存储json所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复