我是一个尝试在路线上获得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"
我究竟做错了什么?
您需要通过使用大写字符启动名称来导出 ErrorJson中的字段.使用字段标记在输出中指定小写名称.
type ErrorJson struct { S string `json:"s"` D string `json:"d"` }
encoding/json包和类似的包忽略未导出的字段.