我正在使用以下代码从API网关方法(附加到Lambda)返回一些值:
[
#foreach($element in $input.path('$.elements'))
{
"field1": "$element.field1",
...
"name" : "$esc.java($element.name)",
...
}#if($foreach.hasNext),#end
#end
]
因为名字可以有chakaheters lika"和\打破JSON,我需要escpae他们,所以按照手册,我使用:
"name" : "$esc.java($element.name)",
但我得到了结果
"name" : "",
知道为什么吗?或者任何选择,好吗?我找不到任何东西。
干杯!
答案 0 :(得分:1)
AWS未在其predefined context variables中提供EscapeTool $esc
。
我在$util
看不到任何有趣的东西。但是你必须记住,你可以访问String
对象的所有方法,所以你可以这样做:
$element.name.replace('\', '\\').replace('"', '\"')
答案 1 :(得分:0)
为此目的添加了一个新功能。 $util.escapeJavaScript()