在 Azure Logic App 中从 JSON 转换为 XML 时如何防止按字母排序

Posted

技术标签:

【中文标题】在 Azure Logic App 中从 JSON 转换为 XML 时如何防止按字母排序【英文标题】:How to prevent alphabetical sorting when converting from JSON to XML in Azure Logic App 【发布时间】:2021-10-28 23:45:08 【问题描述】:

我在 Azure Logic 应用中使用 xml() 函数将 JSON 格式的文本转换为 XML。

我的功能:

xml(json(concat('"root":', string(variables('JsonObject')), '')))

我的问题是对话中的 XML 文件会自动按字母顺序排序。我需要 XML 中元素的顺序与我的 JSON 文本中的顺序相同。

请注意以下示例中元素的顺序是如何排序的。

JSON 输入示例:


    "Employee": [
        
            "Company": [
                
                    "Code": "",
                    "Name": "",
                    "ActiveUntil": "2021-12-12T00:00:00",
                    "CompanyType": [
                        
                            "Code": ""
                        
                    ]
                
            ]
        ,
        
            "EmailAddress": "",
            "GivenName": "",
            "MobilePhoneNumber": "",
            "EndDate": "2021-12-12T00:00:00",
            "Surname": "",
            "Updated": "2021-12-12T00:00:00"
        
    ]

XML 输出:

<Employees>
<Employee>
    <Company>
        <ActiveUntil>2021-12-12T00:00:00</ActiveUntil>
        <Code></Code>
        <CompanyType>
            <Code></Code>
        </CompanyType>
        <Name></Name>
    </Company>
</Employee>
<Employee>
    <EmailAddress></EmailAddress>
    <EndDate>2021-12-12T00:00:00</EndDate>
    <GivenName></GivenName>
    <MobilePhoneNumber></MobilePhoneNumber>
    <Surname></Surname>
    <Updated>2021-12-12T00:00:00</Updated>
</Employee>

【问题讨论】:

【参考方案1】:

您正在使用 JSON 对象(在其他地方称为字典或映射)。元素的顺序没有定义。具有不同顺序的相同键/值对的 JSON 对象是相同的。 XML转换不能改变顺序,因为一开始就没有顺序。

如果你想要一个订单,使用一个数组。

【讨论】:

以上是关于在 Azure Logic App 中从 JSON 转换为 XML 时如何防止按字母排序的主要内容,如果未能解决你的问题,请参考以下文章

使用变量值在 Azure Logic App 中设置 SQL 存储过程路径

Azure Logic App Standard - 从未触发服务总线触发器

Azure Logic应用和数据流-删除?和@(来自JSON(XML))

使用Logic App监控Azure事件

azure functions 或 azure logic app 中是不是有任何触发 Azure File Share 的触发器?

我可以使用哪些操作通过 Azure Logic App 在 SharePoint Online 中创建文件夹?