Mule 在数据编织中使用大括号和大括号的位置

Mule 在数据编织中使用大括号和大括号的位置,mule,mule-studio,dataweave,mule-esb,mulesoft,Mule,Mule Studio,Dataweave,Mule Esb,Mulesoft,我有一个这样的输入数据编织代码 [ { "CountryCode": "????", "District": "????", "ID": 1, "Name": "????", "Population": 1 }, { "CountryCode": "????", "District": "????", "ID": 200, "Name": "????", "Population": 1000 } ]

我有一个这样的输入数据编织代码

[
  {
    "CountryCode": "????",
    "District": "????",
    "ID": 1,
    "Name": "????",
    "Population": 1
  },
  {
    "CountryCode": "????",
    "District": "????",
    "ID": 200,
    "Name": "????",
    "Population": 1000
  }
]
数据编织代码是

%dw 1.0
%output application/xml
---

    WorldDetails: {
        (payload map ((payload01 , indexOfPayload01) -> {
            EachDetail: {
                countrycode: payload01.CountryCode,
                district: payload01.District,
                id: payload01.ID,
                Name: payload01.Name,
                population: payload01.Population
            }
        }))
    }
这是结果输出

 <?xml version='1.0' encoding='UTF-8'?>
<WorldDetails>
  <EachDetail>
    <countrycode>????</countrycode>
    <district>????</district>
    <id>1</id>
    <Name>????</Name>
    <population>1</population>
  </EachDetail>
  <EachDetail>
    <countrycode>????</countrycode>
    <district>????</district>
    <id>200</id>
    <Name>????</Name>
    <population>1000</population>
  </EachDetail>
</WorldDetails>

????
????
1.
????
1.
????
????
200
????
1000

我们可以在代码中看到大括号和大括号。我对在代码中到底在哪里使用这两种大括号有很多困惑。有人能在代码中解释为什么他们在特定的代码行中使用了特定类型的大括号吗。只想知道在数据编织代码中在何处使用开括号和闭括号

稍微清理一下:

%dw 1.0
%output application/xml
---
WorldDetails: {
    (payload map {
        EachDetail: {
            countrycode: $.CountryCode,
            district: $.District,
            id: $.ID,
            Name: $.Name,
            population: $.Population
        }
    })
}
他们以我的想法:

括号
()
用于计算表达式、将参数传递给函数或更改操作顺序

括号
{}
用于定义对象

如果删除括号,则如下所示:

WorldDetails: payload map {
    EachDetail: {
        countrycode: $.CountryCode,
        district: $.District,
        id: $.ID,
        Name: $.Name,
        population: $.Population
    }
}
您将得到一个错误
无法将:数组强制为:对象
,因为您的地图返回的是数组,而不是对象。因此,您计算贴图,并使用
{}
将其强制为对象。如果您想让map有目的地返回数组,可以使用
payload map()


我相信会有更好的答案,然后我可以删除我的帖子。这就是我对它们的理解。

稍微整理一下:

%dw 1.0
%output application/xml
---
WorldDetails: {
    (payload map {
        EachDetail: {
            countrycode: $.CountryCode,
            district: $.District,
            id: $.ID,
            Name: $.Name,
            population: $.Population
        }
    })
}
他们以我的想法:

括号
()
用于计算表达式、将参数传递给函数或更改操作顺序

括号
{}
用于定义对象

如果删除括号,则如下所示:

WorldDetails: payload map {
    EachDetail: {
        countrycode: $.CountryCode,
        district: $.District,
        id: $.ID,
        Name: $.Name,
        population: $.Population
    }
}
您将得到一个错误
无法将:数组强制为:对象
,因为您的地图返回的是数组,而不是对象。因此,您计算贴图,并使用
{}
将其强制为对象。如果您想让map有目的地返回数组,可以使用
payload map()

我相信会有更好的答案,然后我可以删除我的帖子。这就是我理解他们的方式