通过RenderJson传递多个值

时间:2016-10-28 06:17:34

标签: go revel

学习'去'。是否可以通过RenderJson方法传递多个值。类似的东西:

return c.RenderJson(Response{Err: "", Results: {<a_struct>, <string>})

我知道你可以传递一个变量/ value / struct,如:

return c.RenderJson(Response{Err: "", Results: <a_struct>)

为了实现我的目的,我可以创建一个'a_struct'和'string'的结构并传递它。想知道是否可以通过传递多个值来实现。

2 个答案:

答案 0 :(得分:1)

根据https://godoc.org/github.com/revel/revel#Controller.RenderJson,RenderJson只需interface{}。所以我希望

return c.RenderJson(
           Response{
               Err: "",
               Results: map[string]interface{}{
                   "a_struct": a_struct,
                   "other_thing": someString,
               },
           }
)

答案 1 :(得分:1)

是的,有可能

来自Revel's manual的示例:

// Simple example

type Stuff struct {
    Foo string ` json:"foo" xml:"foo" `
    Bar int ` json:"bar" xml:"bar" `
}

func (c MyController) MyAction() revel.Result {
    data := make(map[string]interface{})
    data["error"] = nil
    stuff := Stuff{Foo: "xyz", Bar: 999}
    data["stuff"] = stuff
    return c.RenderJson(data)
    //return c.RenderXml(data)
}