GORM 结构体转 JSON:快速高效指南
GORM 是 Go 语言中一款非常流行的 ORM 框架,用于操作数据库。如果要将 GORM 中的结构体转换为 JSON 格式,可以使用 Go 语言中的 encoding/json 包中的 Marshal 函数。
以下是一个示例代码,将 GORM 中的 User 结构体转换为 JSON 格式:
package main
import (
"encoding/json"
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
type User struct {
ID uint `gorm:"primary_key""`
Name string `gorm:"type:varchar(100)"`
Age uint `gorm:"type:int""`
}
func main() {
db, err := gorm.Open("mysql", "root:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4&parseTime=True&loc=Local")
if err != nil {
fmt.Println("Failed to connect to database:", err)
return
}
defer db.Close()
var user User
db.First(&user)
jsonBytes, err := json.Marshal(user)
if err != nil {
fmt.Println("Failed to marshal user:", err)
return
}
fmt.Println(string(jsonBytes))
}
上述代码中,我们首先使用 GORM 连接到 MySQL 数据库并查询第一个 User 结构体。然后,我们使用 json.Marshal 函数将 User 结构体转换为 JSON 格式,并将结果打印到控制台。
需要注意的是,如果 User 结构体中包含指向其他结构体的字段,那么在转换时可能会出现循环引用的问题。可以使用 json 包中的 json.MarshalIndent 函数来避免这种情况。
原文地址: https://www.cveoy.top/t/topic/lJji 著作权归作者所有。请勿转载和采集!