如何在Appsync VTL解析器中为对象属性赋值null?
在AppSync VTL解析器中为属性赋值null的正确方法
在Amplify/AppSync的VTL模板里,给对象属性赋值null的正确方式是使用官方提供的工具函数$util.toNull()。结合你的业务逻辑,完整的VTL代码可以这么写:
#if($ctx.args.input.muscleGroups && $ctx.args.input.muscleGroups.size() > 0) $util.qr($ctx.args.input.put("primaryMuscleGroup", $ctx.args.input.muscleGroups.get(0))) #else $util.qr($ctx.args.input.put("primaryMuscleGroup", $util.toNull())) #end
为什么之前的方法会报错?
- 直接写
null:在VTL的JSON操作上下文里,裸写的null会被当成普通字符串处理,而非标准JSON null值,导致语法解析失败。 $util.parseJson("null"):这个函数虽能生成null,但在属性赋值的特定场景中,模板引擎可能无法正确识别其类型,进而引发语法问题。
$util.toNull()是AppSync工具库中专门用于生成JSON null值的函数,能确保模板引擎正确解析并输出符合要求的null值,和自动生成解析器里的$util.isNull()检查逻辑完全兼容。
内容的提问来源于stack exchange,提问作者barshopen
相关产品推荐
相关产品推荐

