0

我在 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>
4

1 回答 1

0

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

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

于 2021-08-30T07:57:07.233 回答