【问题标题】:How to fix this error in my appsync while creating an array of data创建数据数组时如何在我的 appsync 中修复此错误
【发布时间】:2019-05-26 02:19:02
【问题描述】:

我正在创建一个日期数组,在我的解析器中它只返回一个日期输出和审计计数

我在整个谷歌中搜索以找到一些答案,我找到了如何制作列表数组的代码,但问题是它没有很好地返回

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
        }
]

【问题讨论】:

  • 嗨 Jhomz,欢迎来到 Stackoverflow。您能否从您发布到此帖子中的图片中复制您的代码?谢谢。

标签: amazon-web-services aws-appsync vtl


【解决方案1】:

这是因为 $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})

【讨论】:

  • 如何从我的 dynamoDB 表设置中获取一些项目和数据 |编号 |排序 |调查_1 |调查_2 |调查_3 | -------------------------------------------------- ------ |waklo | 2018-12-28 | 4 | 5 | 5 |我想得到什么survey_1,survey_2survey_3及其相应的值我正在使用vtl for aws resolver进行类似的统计:[{id:survey_1总计:4}{id:survey_2总计:5}{id:survey_3总计: 5 } ]
  • 非常感谢@Lisa,它可以解决我的问题
猜你喜欢
  • 2023-01-19
  • 2013-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多