2017-07-28 5 views
0

私の目標はcsvファイルを作成できるようにすることです。今のところJSONでIDのリストを返そうとしています。インテグレーションレスポンスでアイテムの配列をマップできません

私のJSONがあるので、私は、応答をマッピングするために苦労しています:

{ 
"items": [ 
     { 
      "id": "2017-07-02_n_Eleana Qorgyle", 
      "groupId": "n_2017-07"} 
] 
} 

と私のモデルは

{ 
    "$schema": "http://json-schema.org/draft-04/schema#", 
    "title": "Log", 
    "type": "object", 
    "properties": { 
    "items": { 
     "type": "array", 
     "items": { 
     "type": "object", 
     "properties": { 
      "id": { "type": "string" } 
     } 
     } 
    } 
    } 
} 

マイVelocityテンプレートが...

#set($inputRoot = $input.path('$')) 
{ 
    "items" : [ 
##TODO: Update this foreach loop to reference array from input json 
#foreach($elem in $inputRoot.items) 
{ 
    "id" : "foo" 
    } 
#if($foreach.hasNext),#end 
#end 
] 
} 

ですしかし、私はこの出力を得ています:

{ 
    "items": [] 
} 

私は何かを見逃しましたか? $ inputRoot.bodyはすべてを出力しますが、反復処理は問題です。

+0

ここに投稿した設定で試しました。私は '' {"items":{{"id": "foo"}}} '' 'を得ることができます。私はあなたのAPIを展開することを忘れるかもしれないと思います。 –

+0

うん、apiが配備されているだけで、indexRoot.itemsを置くだけでOKです。それを反復することが問題です。 –

答えて

0

私は、これはあなたがやろうとしているものだと思う:

#set($inputRoot = $input.path('$')) { 
     "items" : [ 
     #foreach($elem in $inputRoot.items){ 
     "id" : "$elem.get('id')" 
     } 
     #if($foreach.hasNext),#end 
     #end 
     ] 
    } 

ありがとう!

関連する問題