aws api 网关的速度转义字符
escape characters in velocity for aws api gateway
我目前使用以下代码从 API 网关方法(附加到 Lambda)返回一些值:
[
#foreach($element in $input.path('$.elements'))
{
"field1": "$element.field1",
...
"name" : "$esc.java($element.name)",
...
}#if($foreach.hasNext),#end
#end
]
因为名称可以有字符 lika " 和 \ 中断 JSON,我需要将它们转义,所以按照手册,我使用:
"name" : "$esc.java($element.name)",
但我得到了结果
"name" : "",
知道为什么吗?或者有什么选择吗?我在周围找不到任何东西。
干杯!
AWS 不在其 predefined context variables 中提供 EscapeTool $esc
。
我在它的 $util
中没有看到您感兴趣的内容。但是你必须记住,你可以访问 String
对象的所有方法,所以你可以这样做:
$element.name.replace('\', '\').replace('"', '\"')
为此添加了一个新函数。 $util.escapeJavaScript()
我目前使用以下代码从 API 网关方法(附加到 Lambda)返回一些值:
[
#foreach($element in $input.path('$.elements'))
{
"field1": "$element.field1",
...
"name" : "$esc.java($element.name)",
...
}#if($foreach.hasNext),#end
#end
]
因为名称可以有字符 lika " 和 \ 中断 JSON,我需要将它们转义,所以按照手册,我使用:
"name" : "$esc.java($element.name)",
但我得到了结果
"name" : "",
知道为什么吗?或者有什么选择吗?我在周围找不到任何东西。
干杯!
AWS 不在其 predefined context variables 中提供 EscapeTool $esc
。
我在它的 $util
中没有看到您感兴趣的内容。但是你必须记住,你可以访问 String
对象的所有方法,所以你可以这样做:
$element.name.replace('\', '\').replace('"', '\"')
为此添加了一个新函数。 $util.escapeJavaScript()