猿问

Golang 转换 JSON

我正在研究 Golang,GORM 以使用 Echo 框架实现 API


我正在使用以下结构和函数来生成 JSON


type User struct {

    gorm.Model

    Name     string `json:"name"`

    Username string `json:"username"`

    Password string 

}


func GetUsers(c echo.Context) error {

    db := db.GetDBInstance()

    users := []model.User{}

    db.Find(&users)

    return c.JSON(http.StatusOK, users)

}

这是我的 JSON 响应


[

 {

  ID: 1,

  CreatedAt: "2020-04-21T05:28:53.34966Z",

  UpdatedAt: "0001-01-01T00:00:00Z",

  DeletedAt: null,

  name: "",

  username: "test",

  Password: "test123"

 }

]

我想将其转换为以下 JSON


{

  data: [{

   ID: 1,

   CreatedAt: "2020-04-21T05:28:53.34966Z",

   UpdatedAt: "0001-01-01T00:00:00Z",

   DeletedAt: null,

   name: "",

   username: "test",

   Password: "test123"

  }]

}

任何帮助将不胜感激


慕斯709654
浏览 141回答 2
2回答

宝慕林4294392

您可以创建一个新结构来执行此操作type Data struct{    Data []model.User `json:"data"`}func GetUsers(c echo.Context) error {    db := db.GetDBInstance()    users := []model.User{}    db.Find(&users)    data := &Data{        Data: users,    }    return c.JSON(http.StatusOK, data)}

汪汪一只猫

您可以创建助手来处理响应,例如:助手/response_formatter.go响应结构:type Response struct {    Data interface{} `json:"data"`}响应格式化函数:func ResponseFormatter(data interface{}) Response {    response := Response{        Data: data,    }    return response}调用函数import helper...response := helper.ResponseFormatter(users)
随时随地看视频慕课网APP

相关分类

Go
我要回答