【发布时间】:2019-08-03 22:22:42
【问题描述】:
我正在使用 AWS AppSync 中的 Apache Velocity 模板语言 (VTL)。 在我的请求模板中,我查询了具有不同元素的未定义数量的项目。 我想要在响应模板中做的是将结果转换为 JSON 对象,稍后我需要它来执行 BatchDeleteItem 操作。 这是我目前解决的方法:
#set($deleteObject='{"Id" : { "S": "nodelete" },"Sk" : { "S": "nodelete" }}')
#set($replaceDeleteObject ="")
#set($separator="")
#foreach( $item in $ctx.result.items )
#set($replaceDeleteObject = $replaceDeleteObject + $separator + '{"Id" : { "S": "' + $item.Id + '" },"Sk" : { "S": "' + $item.Sk + '" }}')
#set($separator = ",")
#set($deleteObject = $replaceDeleteObject)
#end
$util.qr($ctx.stash.put("deleteObject", $deleteObject))
稍后我可以访问我的 deleteObject 并且它可以正常工作。
然而我的问题是,是否可以在 vtl 中直接创建某种 JSON 对象,我可以在其中附加我的值,而不是以 JSON 对象的形式创建此字符串?
【问题讨论】:
标签: amazon-web-services aws-appsync vtl apache-velocity