Beego控制器中的JSON响应

时间:2015-12-07 05:27:34

标签: json struct go beego

我是新手,试图在路线上获得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"

我做错了什么?

2 个答案:

答案 0 :(得分:6)

通过以大写字符开头,您需要export ErrorJson中的字段。使用字段标记在输出中指定小写名称。

type ErrorJson struct {
    S string `json:"s"`
    D string `json:"d"`
}

encoding / json包和类似的包忽略未导出的字段。

答案 1 :(得分:1)

s& d,golang中的小写不可见。