无法使用映射模板解析来自 DynamoDB 的 AWS API 响应

Not able to parse AWS API response from DynamoDB using mapping template

我正在使用 AWS DynamoDB 和 ASW API 网关。 我有一个 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
        ]
    }

idtitle 我可以解析但不能解析 description。请让我知道我做错了什么。

您刚刚忘记了一个 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
    ]
}