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

AppSync一对多关联查询出现类型不匹配错误(预期LIST类型)

解决AppSync一对多查询的"type mismatch error, expected type LIST"问题

问题回顾

你在使用AppSync查询User的createdCurricula一对多关联字段时,先后遇到了两个关联错误:

  1. 初始响应模板返回包含items和nextToken的对象结构,触发**"type mismatch error, expected type LIST"**——因为Schema中createdCurricula定义的是[Curriculum]列表类型,而非对象。
  2. 修改模板为$util.toJson($context.result.items)后,又出现**"Unable to convert ... to class java.lang.Object"**错误,前端输出显示结果是带外层大括号的对象:{ [{"id":"2",...}] },而非纯数组。

核心原因

问题出在响应映射模板的外层结构上:Amazon的自动生成工具给你的模板额外套了一对大括号,导致原本应该返回的数组被包裹成了一个对象。AppSync期望createdCurricula是LIST数组类型,但实际收到的是一个包含数组的对象,因此触发类型不匹配错误。

解决方案

直接移除响应映射模板外层的大括号,只保留返回数组的核心代码:

$util.toJson($context.result.items)

验证说明

修改后,AppSync会直接返回$context.result.items对应的纯数组,示例如下:

[{"id":"87897987","title":"Test Curriculum","userId":"0b6af629-6009-4f4d-a52f-67aef7b42f43"},{"id":"2","userId":"0b6af629-6009-4f4d-a52f-67aef7b42f43"}]

这个纯数组完全符合Schema中[Curriculum]的LIST类型要求,所有类型匹配错误都会消失。

另外补充:如果需要处理分页nextToken,分页参数应该在父查询getUser的参数中定义和处理,关联字段createdCurricula只需要返回对应的列表数据即可,不需要在其响应模板中返回包含分页信息的对象结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:47:39