Groovy:在字符串中转义花括号

时间:2011-04-21 02:37:39

标签: string groovy escaping curly-braces

我在groovy中编码,我正在尝试返回一些javascript。这是我需要返回一个包含大括号的字符串的问题,当然groovy将其视为错误。这是一个简单的例子:

${ i == 0 ? '{' : '}, {' }  

我想要回复:
    { 或
    },{
计划和简单。

${ i == 0 ? 'should be left brace' : "should be right brace coma left brace" }

花括号可以转义,类似于转义引号吗? 我试过了:

${ i == 0 ? '\{' : '\}, \{' }    

${ i == 0 ? '{{' : '}}, {{' }

感谢。

2 个答案:

答案 0 :(得分:5)

我认为GSP页面中出现问题。您可能得到的错误应该与此类似:

expecting ''', found '\n' @ line 57, column 80.
it) { return i == 0 ? '{' : ' })

一种解决方案是对左右花括号使用Unicode表示:

${ i == 0 ? "\u007B" : "\u007D,\u007B" }

答案 1 :(得分:2)

这对我有用:

def i = 1
assert "},{" == "${i == 0 ? '{' : '},{'}"

你能分享一些Groovy报告错误的代码片段吗?