我是靠谱客的博主 含蓄摩托,最近开发中收集的这篇文章主要介绍简单记录下gorm中存储json,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部