Grails Controller:将字符串渲染为JSON响应

use*_*043 3 grails json controller

我的GSP上有一个简单的自动完成文本输入字段,它通过AJAX请求从控制器获取其值(国家列表).如果控制器看起来像这样,一切正常:

def getAllCountries() {
  def countries = [[name: 'Afghanistan', code: 'AF'],[name: 'Åland Islands', code: 'AX'],[...
  render countries as JSON
}
Run Code Online (Sandbox Code Playgroud)

但是,如果想要以json格式的方式传递已经包含国家/地区的字符串中的国家/地区,那么我可以对Internationalisaion使用不同的字符串表示形式,如下所示:

def countries = "[{'name':'Afghanistan', code: 'AF'},{'name':'Åland Islands', code: 'AX'},{'name':'Albania', code: 'AL'},{..."
Run Code Online (Sandbox Code Playgroud)

但是,现在当我将渲染国家称为JSON时,我收到了一个强制转换异常.

有什么办法可以直接将String传递给视图吗?

非常感谢你.

小智 12

如果您已经有JSON格式的响应,则可以直接呈现它.

response.setContentType("application/json")
render '[{"name":"Afghanistan","code":"AF"},{"name":"Aland Islands","code":"AX"},{"name":"Albania","code":"AL"}]'
Run Code Online (Sandbox Code Playgroud)