Azure-логические приложения и конвертировать json-запрос в XML

Мне нужно создать рабочий процесс Logic Apps с тремя шагами:

Когда HTTP-запрос получен (JSON) Преобразование Json из запроса в XML Сохранить XML-файл на FTP

Что я до сих пор:

Когда HTTP-запрос получен (JSON) Добавить Liquid для преобразования JSON в XML (но я не вижу опции JSON для XML ... Только Tranform JSON to JSON, JSON to TEXT, XML для JSON, XML to TEXT) Преобразование Json из запроса в XML

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

Возможно ли вообще? Может быть, есть другой способ конвертировать между этими двумя форматами?

0
задан 13 August 2018 в 15:12

1 ответ

Когда вы просто хотите преобразовать полезную нагрузку JSON в файл XML, не делая никакого преобразования в данные, вы можете использовать встроенную функцию xml () языка определения рабочего процесса.

Подробное info in docs: Определение рабочего потока Ссылка на язык #xml

Я сделал небольшое тестовое приложение Logic для демонстрации вашей учетной записи. Это выглядит так:

Определение рабочего процесса Ссылка на язык #xml

Как вы можете видеть, я использую функцию xml для триггера @xml(triggerBody()) в качестве входа для моего содержимого файла FTP.

Примечание. Это будет работать, только если ваше сообщение JSON имеет один rootnode. В противном случае преобразование xml завершится ошибкой. Вы получите эту ошибку:

Предоставляемое значение не может быть преобразовано в XML: «Корневой объект JSON имеет несколько свойств. Корневой объект должен иметь одно свойство, чтобы создать допустимый XML-документ. Рассмотрим указание DeserializeRootElementName.

Вы можете обойти это, объединив rootnode в свою полезную нагрузку JSON. Функция тогда будет выглядеть так: @xml(json(concat('{\"rootnode\":',triggerBody(),'}')))

Удачи, проверяя это. Дайте мне знать, если вам нужна дополнительная помощь.

0
ответ дан 15 August 2018 в 17:01
  • 1
    спасибо за отличное объяснение! К сожалению, мне нужно сделать некоторые преобразования в данные, но это хороший момент для начала :) – emerog 14 August 2018 в 15:31
  • 2
    После преобразования в XML вы можете использовать XSLT-карту и «Transform XML», действия со счета интеграции для выполнения необходимых сопоставлений. – jcools85 14 August 2018 в 15:36
  • 3
    Большое спасибо, я попробую это :) – emerog 14 August 2018 в 16:07

Другие вопросы по тегам:

Похожие вопросы: