Grails 2.3表达式输出错误在g:javascript环境中

时间:2013-11-01 10:53:18

标签: json grails gsp

我最近将我的Grails安装从2.2更新到2.3.1,并在尝试在<g:javascript>环境中使用groovy表达式时遇到错误,以获取一些json数据结构。

这是一个例子:

<g:javascript>
  var foo = ${ bar as grails.converters.JSON };
  doSomeStuff();
</g:javascript>

这会将整个JSON字符串转义为unicode字符(\u005b\u007bid:1\u002c name:.....)。怎么可能得到原始字符串。正如文档所指出的:我尝试使用raw()关键字。但没有运气。我没有改变任何与XSS相关的配置。多数民众赞成我的配置:

grails.views.default.codec = "none"
grails.views.gsp.encoding = "UTF-8"
grails.converters.encoding = "UTF-8"

编辑:

我的临时解决方案直到修复此错误:

$.parseJSON(decodeURIComponent(uglyUnicodeString))

2 个答案:

答案 0 :(得分:2)

这是一个错误。请参阅此问题及相关链接:

http://jira.grails.org/browse/GRAILS-10641

答案 1 :(得分:1)

我有同样的问题。我的解决方案是:

<g:javascript>
    var foo = ${ bar.encodeAsJSON() };
    doSomeStuff();
</g:javascript>