Beego踩坑

問(wèn)題1:

  • 問(wèn)題描述

按照官方實(shí)例返回的json結(jié)果始終為 {},官方實(shí)例如下:

//官方案例
func (this *AddController) Get() {
    mystruct := { ... }
    this.Data["json"] = &mystruct
    this.ServeJSON()
}
  • 解決方法:

返回json可以按如下步驟:

  1. 創(chuàng)建返回結(jié)果的結(jié)果體
//1.返回結(jié)果的結(jié)構(gòu)體
type Response struct {
    Code    int         `json:"code"`
    Msg     string      `json:"msg"`
    Data    []string    `json:"data"`
    Success bool        `json:"success"`
}
  1. 在對(duì)應(yīng)的函數(shù)中,寫(xiě)入
u.Data["json"] = &Response{200, "賬號(hào)或密碼錯(cuò)誤", []string{}, false}

3.調(diào)用ServeJSON方法

u.ServeJSON()
  • 示例:
//返回結(jié)果的結(jié)構(gòu)體
type Response struct {
    Code    int         `json:"code"`
    Msg     string      `json:"msg"`
    Data    []string    `json:"data"`
    Success bool        `json:"success"`
}
//返回結(jié)果的方法
// @Title Login
// @Description Logs user into the system
// @Param   username        query   string  true        "The username for login"
// @Param   password        query   string  true        "The password for login"
// @Success 200 {string} login success
// @Failure 403 user not exist
// @router /login [get]
func (u *UserController) Login() {
    username := u.GetString("username")
    password := u.GetString("password")
    u.Data["json"] = &Response{200, "賬號(hào)或密碼錯(cuò)誤", []string{}, false}
    if models.Login(username, password) {
        u.Data["json"] = &Response{200, "登錄成功", []string{}, true}
    }
    u.ServeJSON()
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容