【问题标题】:"How to group xml data in Mule3 anypoint studio"“如何在 Mule3 anypoint studio 中对 xml 数据进行分组”
【发布时间】:2019-05-07 07:35:10
【问题描述】:

我正在进行从 json 到 xml 的转换,然后必须按部门分组。 我正在使用 mysql 数据库来获取员工及其部门。在最后一个变压器上,我必须按部门分组。

这是我在转换后从数据库中获取的 json。

[
    {
        "id": 1,
        "Full Name": "Devendra",
        "Department": {
            "DepartmentName": "IT"
        }
    },
    {
        "id": 2,
        "Full Name": "Rohit",
        "Department": {
            "DepartmentName": "IT"
        }
    }
]

然后,我正在做 json 到 xml 的转换并得到以下结果。

<?xml version="1.0" encoding="windows-1252"?>
<employees>
    <employee>
        <id>1</id>
        <FullName>Devendra</FullName>
        <Department>
            <DepartmentName>IT</DepartmentName>
        </Department>
    </employee>
    <employee>
        <id>2</id>
        <FullName>Rohit</FullName>
        <Department>
            <DepartmentName>IT</DepartmentName>
        </Department>
    </employee>
</employees>

预期结果: 我需要按部门动态显示结果组,如下所示-

<?xml version="1.0" encoding="windows-1252"?>
<Departments>
    <Department>
        <DepartmentName>IT</DepartmentName>
        <employee>
            <id>1</id>
            <FullName>Devendra</FullName>
        </employee>
        <employee>
            <id>2</id>
            <FullName>Rohit</FullName>
        </employee>
    </Department>
</Departments>

我该如何进行这种转换?

【问题讨论】:

    标签: mule mule-studio anypoint-studio mulesoft


    【解决方案1】:

    json2xml:

    %dw 1.0
    %output application/xml
    ---
    Departments: payload groupBy $.Department.DepartmentName mapObject {
        Department: 
            {DepartmentName: $$} ++
            {($ map {
                employee: {
                    id: $.id,
                    FullName: $.'Full Name'
                }
            })
        }
    }
    

    xml2xml:

    %dw 1.0
    %output application/xml
    ---
    Departments: payload.employees groupBy $.Department.DepartmentName mapObject {
        Department: 
            {DepartmentName: $$} ++
            {($ map {
                employee: {
                    id: $.id,
                    FullName: $.FullName
                }
            })
        }
    }
    

    【讨论】:

    • 我收到错误无法将 :null 强制转换为 :string
    • 我来自 json,而不是第二个 xml。我使用的是“全名”而不是“全名”。也许是空间。
    • 是的 json 到 xml 正在工作。我对 xml 到 xml 使用相同的方法,将“全名”设置为“全名”。那不行吗?
    • 我更新了我的答案。此外,问题中的第二个 xml 在第二个员工中没有 DepartmentName,这导致了数据编织。如果有效,请将答案标记为已接受。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2021-07-14
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多