Невозможно проанализировать AWS ответ API от DynamoDB, используя шаблон отображения - PullRequest
0 голосов
/ 06 марта 2020

Я использую AWS DynamoDB и ASW API Gateway. У меня есть API для извлечения некоторого контента из БД, который представлен ниже в формате:

    {
      "Count": 1,
      "Items": [
        {
          "id": {
            "S": "111"
          },
          "title": {
            "S": "title"
          },
          "description": {
            "L": [
              {
                "S": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
              },
              {
                "S": "Lorem ipsum dolor sit amet, consectetur adipiscing elitDuis felis nibh, 
    mattis 
    vitae augue a, congue malesuada orciDuis felis nibh, mattis vitae augue a, congue malesuada 
    orci"
              },
              {
                "S": "Nullam in gravida sem. Nulla sagittis dignissim ultricies"
              }
            ]
          }
        }
      ]
    }

, который мне нужно проанализировать, например:

    {
      "response": [
        {
          "id": "111",
          "title": "title",
          "description": [
            "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
            "Duis felis nibh, mattis vitae augue a, congue malesuada orciDuis felis nibh, mattis 
    vitae augue a, congue malesuada orci",
            "Nullam in gravida sem. Nulla sagittis dignissim ultricies"
          ]
        }
      ]
    }

Вот мой код для ответа шаблон отображения:

    #set($inputRoot = $input.path('$'))
    {
        "response": [
            #foreach($elem in $inputRoot.Items) {
                "id": "$elem.id.S",
                "description": [
                   #foreach($paramName in $elem.description.L)
                     "$paramName.S" 
                     #if($foreach.hasNext),#end],
                "title": "$elem.title.S"
            }#if($foreach.hasNext),#end
        #end
        ]
    }

id и title Я могу проанализировать, но не описание . Пожалуйста, дайте мне знать, что я делаю не так.

1 Ответ

0 голосов
/ 06 марта 2020

Вы только что забыли одно утверждение END: -)

#set($inputRoot = $input.path('$'))
{
    "response": [
        #foreach($elem in $inputRoot.Items) {
            "id": "$elem.id.S",
            "title": "$elem.title.S",
            "description": [
               #foreach($paramName in $elem.description.L)
                "$paramName.S"#if($foreach.hasNext),#end
                #end
            ]
        }#if($foreach.hasNext),#end
    #end
    ]
}
...