Java 逃出一个大括号{在速度上

Java 逃出一个大括号{在速度上,java,velocity,Java,Velocity,抱歉:这是我的错。这个错误是由于不正确的json生成和Chrome扩展“JSONView in Chrome”造成的。请参阅我自己的答案(我必须自己回答这个问题-因为我无法再删除这个问题) 我使用Velocity(org.apache.Velocity的Maven版本1.7)作为模板引擎,我希望输出如下: { total : 234 } 现在,当我尝试: { total : $listing.size() } 我得到一个错误: Error: Parse error on lin

抱歉:这是我的错。这个错误是由于不正确的json生成和Chrome扩展“JSONView in Chrome”造成的。请参阅我自己的答案(我必须自己回答这个问题-因为我无法再删除这个问题)

我使用Velocity(org.apache.Velocity的Maven版本1.7)作为模板引擎,我希望输出如下:

{
   total : 234
}
现在,当我尝试:

{
    total : $listing.size()
}
我得到一个错误:

Error: Parse error on line 1:
{   total : 0}
--^
Expecting 'STRING', '}'

当我试图摆脱大括号时:

\{
    total : $listing.size()
\}
我在最终输出中获得转义字符!:

\{
   total : 234
\}

我最终创建了一个常量
ocb={
ccb=}
,并使用
$ocb
$ccb


我相信有更好的办法。

这里有一些东西看起来像你的处境:

更新:

首先尝试这样做:

#set( $startbrace = "{" )
#set( $endbrace = "}" )
然后将您的文本设置为:

$startbrace
    total : $listing.size()
$endbrace

很抱歉,这是因为我生成的JSON不正确,这是Chrome浏览器的扩展名“JSONView”向我指出的。这是因为我的键不是字符串……即,我有:

 {total: 0}
但我应该:

 {"total" : 0}

确实有更好的方法可以做到这一点。

使用此处接受的答案()进行初始设置

您还需要添加velocity工具依赖项:

<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-tools</artifactId>
    <version>2.0</version>
</dependency>

您还可以在此处签出更多转义选项()

Huh?Velocity不关心单独的大括号。它们不需要转义。您使用的是什么版本?您可以显示其余的解析错误吗?我遇到了一个错误-我没有制定规则。这就是我在小javascript弹出窗口中遇到的所有错误,这是因为我在源代码中没有看到js。我正在使用Maven-org.apache.velocity 1.7版本本身的大括号不应该是问题,我有很多包含Javascript函数的模板。在第一个
{
?在此之前是否有未终止的VTL宏或运算符?更新了我的答案,但所有对它的注释不知为何都消失了。真的吗?这台引擎真的很糟糕吗…也许我应该趁我还可以的时候退开。我发现它真的很酷。但是,我从来都不是一个花太多时间阅读手册的人。抱歉:这是我的错。此错误是由于对于Chrome扩展名“JSONView in Chrome”!抱歉:这是我的错误。此错误是由于Chrome扩展名“JSONView in Chrome”!这是答案(如果您没有使用格式错误的JSON
$esc.java("{total: 0}")