【问题标题】:Easy way to render JSON with HTTP status code in Grails在 Grails 中使用 HTTP 状态代码呈现 JSON 的简单方法
【发布时间】:2012-05-30 09:03:50
【问题描述】:

有没有明确的"text/json" 指定的简写方法?

def remoteError = {     
  render( status: 500, contentType: "text/json"){
      error( exception: "a remote exception occurred")
  }
}

我尝试使用as JSON...没有返回内容但状态码正确...

render( status: 500, exception: params.exception) as JSON 

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    如果您对render 使用转换器参数,那么您不能像使用gsp 视图时那样指定任何其他参数,例如状态。但是,您可以在调用渲染之前设置响应状态:

    response.status = 500
    render([error: 'an error occurred'] as JSON)
    

    【讨论】:

    • 这实际上抛出了一个强制转换异常,因为params.exception 是一个字符串。我试过def errorMsg = [error: 'an error occurred']render errorMsg as JSON,效果很好。
    • @RaffiM 当然,我改变了我的答案来渲染一个地图而不是一个不起作用的字符串。
    • 不得不再做一次细微的调整,render ([error: 'sdf'] as JSON),谢谢提示
    【解决方案2】:
    render(status:500,text:(errors as JSON).toString(),contentType: 'application/json')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多