Json 用于在dataweave mule中添加列表的mule代码
我试图从JSON文件中提取物理地址和邮寄地址。我可以单独检索它们,但无法在Json 用于在dataweave mule中添加列表的mule代码,json,merge,mule,mule-component,dataweave,Json,Merge,Mule,Mule Component,Dataweave,我试图从JSON文件中提取物理地址和邮寄地址。我可以单独检索它们,但无法在dataweave中合并它们。下面的dataweave代码将提供物理地址和邮寄地址列表,但我想要一个包含物理地址和邮寄地址的地址列表 下面是使用的dataweave代码: physicaladdress: payload01.attributes.PhysicalAddress map ((physicalAddress , indexOfPhysicalAddress) -> { type: physica
dataweave
中合并它们。下面的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,
非常感谢您的帮助
使用所附dataweave代码的当前响应:
"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,
我正在寻找附有列表(实物和邮寄)示例的地址,以供参考。看看这是否能帮助您:
Sample Input :
{
"physicaladdressList" : [
"physicaladdress" : {
"type": "01" ,
"lineOne": " 1st Address Line1(P)",
"lineTwo": " 1st Address Line2 (P)",
"country": "INDIA"
},
"physicaladdress" :{
"type": "02" ,
"lineOne": "2nd Address Line1(P)",
"lineTwo": "2nd Address Line2(P)",
"country": "INDIA"
},
"physicaladdress" : {
"type": "03" ,
"lineOne": "3rd Address Line1(P)",
"lineTwo": "3rd Address Line2(P)",
"country": "INDIA"
}
],
"mailingaddressList" : [
"mailingaddress" :{
"type": "04" ,
"lineOne": "1st Address Line1(M)",
"lineTwo": "1st Address Line2(M)",
"country": "INDIA"
},
"mailingaddress" : {
"type": "05" ,
"lineOne": "2nd Address Line1(M)",
"lineTwo": "2nd Address Line2(M)",
"country": "INDIA"
},
"mailingaddress" : {
"type": "06" ,
"lineOne": "3rd Address Line1(M)",
"lineTwo": "3rd Address Line2(M)",
"country": "INDIA"
}]
}
===============DataWeave===============================
%dw 1.0
%input payload application/json
%output application/json
%var phydata = payload.physicaladdressList.physicaladdress
%var mailddata = payload.mailingaddressList.mailingaddress
%var b = sizeOf (payload.physicaladdressList.physicaladdress)
%var a = 0
%var c= b - 1
---
[[a][0] .. [c][0]] map {
Address :
{
PhysicalAddress:
{
"Type" : phydata[$][0].type,
"AddressLine1" : phydata[$][1].lineOne,
"AddressLine2" : phydata[$][2].lineTwo,
"Country" : phydata[$][3].country
},
MailingAddress:
{
"Type" : mailddata[$][0].type,
"AddressLine1" : mailddata[$][1].lineOne,
"AddressLine2" : mailddata[$][2].lineTwo,
"Country" : mailddata[$][3].country
}
}
}
==========OutPut============================
[
{
"Address": {
"PhysicalAddress": {
"Type": "01",
"AddressLine1": " 1st Address Line1(P)",
"AddressLine2": " 1st Address Line2 (P)",
"Country": "INDIA"
},
"MailingAddress": {
"Type": "04",
"AddressLine1": "1st Address Line1(M)",
"AddressLine2": "1st Address Line2(M)",
"Country": "INDIA"
}
}
},
{
"Address": {
"PhysicalAddress": {
"Type": "02",
"AddressLine1": "2nd Address Line1(P)",
"AddressLine2": "2nd Address Line2(P)",
"Country": "INDIA"
},
"MailingAddress": {
"Type": "05",
"AddressLine1": "2nd Address Line1(M)",
"AddressLine2": "2nd Address Line2(M)",
"Country": "INDIA"
}
}
},
{
"Address": {
"PhysicalAddress": {
"Type": "03",
"AddressLine1": "3rd Address Line1(P)",
"AddressLine2": "3rd Address Line2(P)",
"Country": "INDIA"
},
"MailingAddress": {
"Type": "06",
"AddressLine1": "3rd Address Line1(M)",
"AddressLine2": "3rd Address Line2(M)",
"Country": "INDIA"
}
}
}
]
输入:
数据编织
输出
谢谢莫米塔给你时间。我已附加当前输出和预期输出,以提供有关我遇到的场景的更多信息。@chethan:使用以下代码:%dw 1.0%input payload application/json%output application/json%var maildata=payload.mailingaddress--“Address”:payload.physicaladdress映射{“type”:$.type,“addressLine1”:$.addressLine1,“cityName”:$.cityName,“country”:$.country}++MailddataHanks jitesh,谢谢您的时间。我应该提供示例来解释该场景。我已经用当前输出和预期输出更新了查询,以提供有关场景的更多信息。非常感谢你的帮助。
{
"Address": {
"PhysicalAddress": {
"Type": "01",
"AddressLine1": " PhysicalAddress Address Line1(P)",
"AddressLine2": " PhysicalAddress Address Line2 (P)",
"Country": "INDIA"
},
"MailingAddress": {
"Type": "04",
"AddressLine1": "MailingAddress Address Line1(M)",
"AddressLine2": "MailingAddress Address Line2(M)",
"Country": "INDIA"
}
}
}
%dw 1.0
%output application/json
---
{Address : "MailingAddress": payload.Address.MailingAddress.AddressLine1
+"PhysicalAddress":payload.Address.PhysicalAddress.AddressLine1,
Address2 : "MailingAddress": payload.Address.MailingAddress.AddressLine2
+"PhysicalAddress":payload.Address.PhysicalAddress.AddressLine2}
{"Address": {
"MailingAddress": [
"MailingAddress Address Line1(M)",
" PhysicalAddress Address Line1(P)"
] "Address2": {
"MailingAddress": [
"MailingAddress Address Line2(M)",
" PhysicalAddress Address Line2 (P)"
]}}}