Как исправить эту ошибку в моей appsync при создании массива данных - PullRequest
0 голосов
/ 28 декабря 2018

Я создаю массив дат, и в моем преобразователе он возвращает только один вывод даты и количества проверенных.

Я ищу в Google, чтобы найти ответ, и нашел код, как сделать массив изсписок, но проблема в том, что он не вернулся хорошо

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

1 Ответ

0 голосов
/ 28 декабря 2018

Это происходит потому, что $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})
...