我的Go结构如下:

type BaseModel struct {
    Id          string    `json:"id"`
    CreatedTime time.Time `json:"createdTime"`
    UpdatedTime time.Time `json:"updatedTime"`
    Deleted     bool      `json:"deleted"`
}

type Category struct {
    BaseModel
    Parent    string `json:"parent"`
    Name      string `json:"name"`
    IconClass string `json:"iconClass"`
    Mark      string `json:"mark"`
}

我想像这样将Category转换为JSON:
{
  "id":"",
  "deleted":"",
  ...
  "parent":"",
  "name":""
}

但是,当我使用Go的json对其进行转换时,它给出了以下信息:
{
  "Id":"",
  "Deleted":"",
  ...
  "parent":"",
  "name":"",
  ...
}

我现在应该怎么做?

我用下面的代码来转换:

// define
var menus []models.Category
// query from db
q.Filter("deleted__exact", false).All(&menus)
// serialize it
res, _ := json.Marshal(&menus)
s := string(res[:])
beego.Debug(s)

最佳答案

请在此处添加您的转换代码。下面的代码工作正常。

type BaseModel struct {
    Id          string    `json:"id"`
    CreatedTime time.Time `json:"createdTime"`
    UpdatedTime time.Time `json:"updatedTime"`
    Deleted     bool      `json:"deleted"`
}

type Category struct {
    BaseModel
    Parent    string `json:"parent"`
    Name      string `json:"name"`
    IconClass string `json:"iconClass"`
    Mark      string `json:"mark"`
}

func main() {
    data, err := json.Marshal(Category{})
    if err != nil {
        return
    }

    fmt.Println(string(data[:]))
}

输出:
{"id":"","createdTime":"0001-01-01T00:00:00Z","updatedTime":"0001-01-01T00:00:00Z","deleted":false,"parent":"","name":"","iconClass":"","mark":""}

09-10 08:41
查看更多