2015-08-16 5 views

ответ

4

Вы можете указать ответ интеграции, который возвращает XML, вместе с шаблоном сопоставления для форматирования XML с использованием объекта, возвращенного из Lambda.

Sample Integration Response

Я не считаю, что это преобразование формата по умолчанию в XML. Простой шаблон отображения может выглядеть так:

#set($root = $input.path('$')) 
<stuff> 
    <message>$root.message</message> 
    <sourceIp>$context.identity.sourceIp</sourceIp> 
    <outputs> 
     #foreach($key in $root.keySet()) 
     <output> 
      <key>$key</key> 
      <value>$root.get($key)</value> 
     </output> 
     #end 
    </outputs> 
</stuff> 
1

Со ссылкой на this document, раздел «Доступ к $ UTIL Variable», решить задачу в простой JSON в XML-преобразования. Я попробовал шаблон сопоставления, данный ранее здесь, но это не сработало для меня.

В моем случае, полезная нагрузка ответ JSON имеет вид:

[ 
    { 
    "key1": "val1", 
    "key2": "val2", 
    "key3": "val3" 
    }, 
    { 
    "key1": "val1", 
    "key2": "val2", 
    "key3": "val3", 
    "key4": "val4" 
    } 
] 

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

#set ($arr = $util.parseJson($input.path('$'))) 
<responses> 
#foreach($c in $arr) 
    <response> 
#foreach ($k in $c.keySet()) 
     <$k>$c.get($k)</$k>#end 
    </response> 
#end 
</responses> 

Ключ был parseJson, чтобы получить истинное JSON/Java-объект. После этого он был плавным.

И выход имеет вид:

<responses> 
    <response> 
     <key1>val1</key1> 
     ... 
    </response> 
    ... 
</responses> 

Я надеюсь, что это помогает.

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