json - 将 JSON HTTP 请求转换并转换为 XML

标签 json xml azure azure-logic-apps

我需要通过三个步骤创建逻辑应用工作流程:

  1. 收到 HTTP 请求时 (JSON)
  2. 将 Json 从请求转换为 XML
  3. 将 XML 文件保存到 FTP

到目前为止我做了什么:

  1. 添加操作“收到 HTTP 请求时”
  2. 添加 Liquid 将 JSON 转换为 XML (但我没有看到选项 JSON to XML...仅将 JSON 转换为 JSON,将 JSON 转换为 文本、XML 到 JSON、XML 到文本)
  3. 添加操作“FTP - 创建文件”

我还创建了集成帐户并尝试添加用于将 JSON 映射到 XML 的映射,但我找不到任何示例/模板来执行此操作...

这可能吗?也许还有另一种方法可以在这两种格式之间进行转换?

最佳答案

当您只想将 JSON 负载转换为 XML 文件,而不对数据进行任何转换时,您可以使用工作流定义语言的内置 xml() 函数。

文档中的详细信息:Workflow Definition Language reference #xml

我制作了一个小型测试逻辑应用程序来演示您的用例。它看起来像这样:

enter image description here

如您所见,我在触发器主体上使用了 xml 函数 @xml(triggerBody())作为我的 FTP 文件内容的输入。

备注:只有当您的 JSON 消息具有单个根节点时,这才有效。否则xml转换将会失败。您将收到此错误:

The provided value cannot be converted to XML: 'JSON root object has multiple properties. The root object must have a single property in order to create a valid XML document. Consider specifying a DeserializeRootElementName.

您可以通过将根节点连接到 JSON 负载来解决这个问题。该函数将如下所示:@xml(json(concat('{\"rootnode\":',triggerBody(),'}')))

祝你测试顺利。如果您需要更多帮助,请告诉我。

关于json - 将 JSON HTTP 请求转换并转换为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51822114/

相关文章:

javascript - 在 React 中加载外部 JSON

安卓: "Error parsing XML: must not undeclare prefix"

Azure AD token 主题类型(用户或仅限应用程序?)

azure - 如何摆脱 Nuget

powershell - 在Azure中创建磁盘新门户不起作用,旧门户我可以轻松完成

arrays - 在 Swift 中解析 json 数组

php - 分离的数据服务器、内容服务器、客户端服务器和后端服务器

json - 解析 HTML 以快速获取 JSON

c# - .Net XmlSerializer 输出数据类型

xml - 如果 XSLT 不存在,则附加页眉和页脚