amazon-web-services - 创建数据数组时如何在我的 appsync 中修复此错误
问题描述
我正在创建一个日期数组,在我的解析器中它只返回一个日期输出和审计计数
我在整个谷歌中搜索以找到一些答案,我找到了一个如何制作列表数组的代码,但问题是它没有很好地返回
https://imgur.com/a/1eDknYN 这是一个结果,我使用它的代码附在图片中
#set ($tu = 0) #set ($pc = 0) #set ($fc = 0) #set ($da = [])#set ($cda = []) #foreach($item in $ctx.result.items)
#set($tu = $item.total_audits + $tu)
#set($pc = $item.passed_compliance + $pc)
#set($fc = $item.failed_compliance + $fc)
#set($date = $item.sort)
#set($count = $item.total_audits)
$util.qr($da.add("$date"))
$util.qr($cda.add("$count"))
#end
$util.toJson({"total_audits":$tu, "passed_compliance":$pc,
"failed_compliance":$fc, "daily_audit": [{"date": $da, "count": $cda}]})
这是错误
"errors": [
{
"path": [
"getAuditSummary",
"daily_audit",
0,
"date"
],
"locations": null,
"message": "Can't serialize value (/getAuditSummary/daily_audit[0]/date) : Unable to serialize `[2018-12-26, 2018-12-27, 2018-12-28]` as a valid date."
},
{
"path": [
"getAuditSummary",
"daily_audit",
0,
"count"
],
"locations": null,
"message": "Can't serialize value (/getAuditSummary/daily_audit[0]/count) : Expected type 'Int' but was 'ArrayList'."
我想做的是它会返回这样的东西
"daily_audit": [
{
"date": 2018-12-26,
"count": 1
}
{
"date": 2018-12-27,
"count": 4
}
{
"date": 2018-12-28,
"count": 2
}
]
解决方案
发生这种情况是因为$da
和$cda
是数组。所以它可能会返回:
"daily_audit": [
{
"date": [2018-12-26,2018-12-27,2018-12-28],
"count": [1,4,2]
}
]
因此,在您的响应映射模板中,您可以尝试以下操作:
#set ($tu = 0)
#set ($pc = 0)
#set ($fc = 0)
#set ($da = [])
#foreach($item in $ctx.result.items)
#set($tu = $item.total_audits + $tu)
#set($pc = $item.passed_compliance + $pc)
#set($fc = $item.failed_compliance + $fc)
#set($date = $item.sort)
#set($count = $item.total_audits)
$util.qr($da.add({"date":$date, "count":$count}))
#end
$util.toJson({"total_audits":$tu, "passed_compliance":$pc, "failed_compliance":$fc, "daily_audit": $da})
推荐阅读
- reactjs - 如何修复 React Native 中的 Firebase/firestore 错误?
- python - 没有使用 selenium 脚本输入新记录
- c++ - 如何使用 VS 2019 Preview 在 Windows 10 中安装 boost
- php - 将 mysql 数据作为联系人导出到电报
- c# - 单击“登录”按钮时如何打开新表单,参考从组合框中选择的选项
- java - 使用 TestContainers 和 Jenkins 在 docker 容器中运行测试(docker.sock 权限被拒绝)
- r - 检查一个数据框列中的值或模式与数据库中的另一列是否匹配
- aix - 如何在 AIX 中使用 lssec 命令打印多个节(用户)
- python - 背景图像覆盖按钮的背景颜色
- graphql - 字段“产品”缺少必需的参数:id