【发布时间】:2018-02-08 15:21:47
【问题描述】:
我正在尝试从 JSON 文件中提取物理地址和邮寄地址。我可以单独检索它们,但无法将它们合并到dataweave 中。下面的数据编织代码将提供物理地址和邮寄地址列表,但我想要一个包含物理地址和邮寄地址的地址列表。
下面是使用的dataweave代码:
physicaladdress: payload01.attributes.PhysicalAddress map ((physicalAddress , indexOfPhysicalAddress) -> {
type: physicalAddress.value.AddressType.value ,
lineOne: physicalAddress.value.AddressLine1[0].value as :string ,
lineTwo: physicalAddress.value.AddressLine2[0].value as :string,
country: physicalAddress.value.Country[0].value as :string
}) when payload01.attributes.PhysicalAddress != null otherwise null,
mailingaddress: payload01.attributes.MailingAddress map ((mailingAddress , indexOfMailingAddress) -> {
type: mailingAddress.value.AddressType.value ,
lineOne: mailingAddress.value.AddressLine1[0].value as :string,
lineTwo: mailingAddress.value.AddressLine2[0].value as :string ,
country: mailingAddress.value.Country[0].value as :string
}) when payload01.attributes.MailingAddress != null otherwise null,
非常感谢任何帮助...
使用附加的数据编织代码的当前响应:
"physicaladdress": [
{
"type": "Physical",
"addressLine1": "1166 Quail Ct310",
"cityName": "Pewaukee",
"country": "United States"
},
{
"type": "Physical",
"addressLine1": "1166 Quail Ct Ste 310-310 Ste 310",
"cityName": "Pewaukee",
"country": "United States"
}
],
"mailingaddress": [
{
"type": "Mailing",
"lineOne": "1166 Quail Ct Ste 310-310 Ste 310",
"cityName": "Pewaukee",
"country": "United States"
},
{
"type": "Mailing",
"lineOne": "1166 Quail Ct Ste 310",
"cityName": "Pewaukee",
"country": "United States"
}
]
预期响应:
"address": [
{
"type": "Physical",
"addressLine1": "1166 Quail Ct Ste 310",
"cityName": "Pewaukee",
"country": "United States"
},
{
"type": "Physical",
"addressLine1": "1166 Quail Ct Ste 310-310 Ste 310",
"cityName": "Pewaukee",
"country": "United States"
},
{
"type": "Mailing",
"lineOne": "1166 Quail Ct Ste 310-310 Ste 310",
"cityName": "Pewaukee",
"country": "United States"
},
{
"type": "Mailing",
"lineOne": "1166 Quail Ct Ste 310",
"cityName": "Pewaukee",
"country": "United States"
}
]
如果我将 dataweave 代码更改为下面的代码,我将只获得邮寄地址,认为邮寄地址会覆盖物理地址:
address: payload01.attributes.PhysicalAddress map ((physicalAddress , indexOfPhysicalAddress) -> {
type: physicalAddress.value.AddressType.value ,
lineOne: physicalAddress.value.AddressLine1[0].value as :string ,
lineTwo: physicalAddress.value.AddressLine2[0].value as :string,
country: physicalAddress.value.Country[0].value as :string
}) when payload01.attributes.PhysicalAddress != null otherwise null,
address: payload01.attributes.MailingAddress map ((mailingAddress , indexOfMailingAddress) -> {
type: mailingAddress.value.AddressType.value ,
lineOne: mailingAddress.value.AddressLine1[0].value as :string,
lineTwo: mailingAddress.value.AddressLine2[0].value as :string ,
country: mailingAddress.value.Country[0].value as :string
}) when payload01.attributes.MailingAddress != null otherwise null,
我正在寻找附有列表(物理和邮寄)示例的地址,以供参考。
【问题讨论】:
标签: json merge mule mule-component dataweave