【问题标题】:How to render JSON in Grails?如何在 Grails 中渲染 JSON?
【发布时间】:2015-03-30 09:06:51
【问题描述】:

我有一个对象,

def roles = account.roles

我想以 JSON 格式呈现它,例如

[{'value':1, 'text':'Admin'},{'value':2,'text':'Owner'}, {'value':3,'text':'Sale'}]

当我做这样的代码时,它不起作用,

render(contentType: "text/json"){[
    "value" : roles.id,
    "text" : roles.name
]}

它会渲染到格式错误的数据,例如{"value":[1,2,3],"text":["Admin","Owner","Sale"]}

我尝试这样

def res = roles.each(){
    ['value':it.id, 'text':it.name]
}
render res as JSON

它也不起作用。

【问题讨论】:

    标签: grails


    【解决方案1】:

    使用collect而不是each,比如

    def res = roles.collect {['value':it.id, 'text':it.name]}
    render res as JSON
    

    【讨论】:

      【解决方案2】:

      您可以将角色渲染为 JSON

      或者

      render(contentType: "application/json") {
              roles = array {
                  for (r in roles) {
                      role text: r.name, value:r.id
                  }
              }
          }
      

      请参阅 grails 用户指南的xml and json responses 部分

      【讨论】:

      • 对于 grails 3,它呈现 {"array":{"role":{"text":"...", "value":"...}}}
      猜你喜欢
      • 2012-03-27
      • 2017-06-05
      • 2011-05-17
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      相关资源
      最近更新 更多