You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppSync VTL响应映射器出现解析错误,请求排查与解决

AppSync VTL响应映射器解析错误排查与修复

错误原因

  1. JSON尾逗号语法违规:VTL的JSON解析器严格遵循标准JSON语法,不允许对象最后一个键值对末尾保留逗号。你的代码中第8行"endsAt": $ctx.result.availability.endsAt,末尾的逗号触发了语法错误,导致解析器在第9行遇到}时无法匹配预期的语法结构。
  2. 输出逻辑重复问题:当前代码无论$isAdmin是否为true,最终都会执行$util.toJson($ctx.result)。如果是非admin用户,会先后输出两个JSON字符串,直接导致响应格式非法(JSON不允许多个顶级对象)。

解决方法

步骤1:移除多余的尾逗号

删除"endsAt"行末尾的逗号,修正后的JSON结构如下:

$util.toJson({
  "availability": {
    "startsAt": $ctx.result.availability.startsAt,
    "endsAt": $ctx.result.availability.endsAt
  }
})

步骤2:修正输出逻辑,避免重复JSON

使用#else分支区分admin与非admin的输出,确保每次仅输出单个合法JSON:

#set($isAdmin = $ctx.identity.resolverContext.is_admin)

#if(!$isAdmin)
  $util.toJson({
    "availability": {
      "startsAt": $ctx.result.availability.startsAt,
      "endsAt": $ctx.result.availability.endsAt
    }
  })
#else
  $util.toJson($ctx.result)
#end

内容的提问来源于stack exchange,提问作者jordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:09:53