2016-10-21 11 views
0

Я пытаюсь отформатировать вывод из своего aws api, но не могу получить один из списков в объекте, который должен пройти. У меня есть данные, загруженные в dynamodb и мои данные выглядит следующим образом:шаблон отображения тела aws api

[ 
    { 
    "lastname": "person1", 
    "firstname": "last2", 
    "employeeid": 7, 
    "hrs": [ 
     { 
     "availhrs": "16", 
     "ttlhrs": "12", 
     "bllhrs": "14", 
     "rto": "16", 
     "ondeckhrs": "0", 
     "nonbllhrs": "0", 
     "employeeid": 78, 
     "dtmonth": "2016-01-01T00:00:00.000Z", 
     "clientid": 1, 
     "clientId": 1, 
     "employeeId": 78 
     }, 
     { 
     "availhrs": "16", 
     "ttlhrs": "17", 
     "bllhrs": "15", 
     "rto": "26.5", 
     "ondeckhrs": "0", 
     "nonbllhrs": "0", 
     "employeeid": 78, 
     "dtmonth": "2016-02-01T00:00:00.000Z", 
     "clientid": 1, 
     "clientId": 1, 
     "employeeId": 78 
     } 
    ] 
    } 
] 

Я пытаюсь форматировать его так:

#set($inputRoot = $input.path('$')) 
{ 
    "employees": [ 
     #foreach($elem in $inputRoot.Items) 
     { 
      "employeeid": "$elem.employeeid.N", 
      "lastname": "$elem.lastname.S", 
      "firstname": "$elem.firstname.S", 
      "hrs": [ 
       #foreach($elem in $inputRoot.Items.hrs) 
       { 
          "availhrs": "$elem.availhrs", 
          "ttlhrs": "$elem.ttlhrs", 
          "bllhrs": "$elem.bllhrs", 
          "rto": "$elem.rto", 
          "ondeckhrs": "$elem.ondeckhrs", 
          "nonbllhrs": "$elem.nonbllhrs", 
          "dtmonth": "$elem.dtmonth" 
       }#if($foreach.hasNext),#end 
       #end 
      ] 
     }#if($foreach.hasNext).#end 
     #end 
    ] 
} 

но мой результат выглядит следующим образом:

{ 
    "employees": [ 
    { 
     "employeeid": "7", 
     "lastname": "last2", 
     "firstname": "person1", 
     "hrs": [] 
    } 
    ] 
} 

Что я делаю неправильно в формировании, где моя часть hrs не выходит?

+0

Можете ли вы разместить свою модель здесь? –

ответ

2

Неправильная внутренняя петля. Вы должны сделать итерацию более $ elem.hrs вместо $ inputRoot.Item.hrs

#set($inputRoot = $input.path('$')) 
{ 
    "employees": [ 
     #foreach($elem in $inputRoot.Items) 
     { 
      "employeeid": "$elem.employeeid.N", 
      "lastname": "$elem.lastname.S", 
      "firstname": "$elem.firstname.S", 
      "hrs": [ 
       #foreach($hour in $elem.hrs) 
       { 
          "availhrs": "$hour.availhrs", 
          "ttlhrs": "$hour.ttlhrs", 
          "bllhrs": "$hour.bllhrs", 
          "rto": "$hour.rto", 
          "ondeckhrs": "$hour.ondeckhrs", 
          "nonbllhrs": "$hour.nonbllhrs", 
          "dtmonth": "$hour.dtmonth" 
       }#if($foreach.hasNext),#end 
       #end 
      ] 
     }#if($foreach.hasNext).#end 
     #end 
    ] 
} 
+0

, поэтому я возвращаю объект 'hrs', но все детали пустые ... например: {{ " сотрудники ": [ {" employeeid ":" 78 ", " lastname ":" last2 " , "Firstname": "лицом1", "ч": [ { "availhrs": "", "ttlhrs": "", "bllhrs": "", "RTO": "", "ondeckhrs": "", " nonbllhrs": "", "dtmonth": ""} ] } ] } ' – user2061886

+0

OK, в этом случае вы нужно добавить .S или .N, например $ hour.availhrs.S (или .N) для чисел, как вы делали с employeeid и lastname –

+0

ok ... так попробовал, но все равно не повезло .... я изменил '$ elem.hrs' до' $ elem.hrs.L' и получил правильное количество объектов в hrs, но все же материал в hrs пуст? – user2061886

 Смежные вопросы

  • Нет связанных вопросов^_^