我是新手,试图在路线上获得JSON响应。
我有一个如此定义的控制器。
package controllers
import (
"github.com/astaxie/beego"
)
type ErrorController struct {
beego.Controller
}
type ErrorJson struct {
s string
d string
}
func (this *ErrorController) Get() {
var responseJson ErrorJson
responseJson = ErrorJson{
s: "asdf",
d: "qwer",
}
this.Data["json"] = responseJson
this.ServeJson()
}
我的路由器定义为
beego.Router("/api", &controllers.ErrorController{})
当我访问路线时,我得到一个没有任何属性的Empty JSON对象。
{}
如果我用字符串替换json结构,我会得到一个响应。所以beego知道控制器和方法。
this.Data["json"] = "Hello World"
我做错了什么?
答案 0 :(得分:6)
通过以大写字符开头,您需要export ErrorJson中的字段。使用字段标记在输出中指定小写名称。
type ErrorJson struct {
S string `json:"s"`
D string `json:"d"`
}
encoding / json包和类似的包忽略未导出的字段。
答案 1 :(得分:1)
s
& d
,golang中的小写不可见。