如何使用 dataweave 操作输入以获得所需的输出?
How to manipulate the input using dataweave to get the desired output?
输入Json
{
“姓名”: {
“显示值”:空,
“价值”:“EQ-10186735”
},
“SP_Altitude__c”:{
“显示值”:空,
“价值”:“ALT001”
},
“SP_Batch_Number__c”:{
“显示值”:空,
“值”:“Batch_number_001”
},
“SP_Classification__c”:{
“显示值”:空,
“价值”:“产品”
},
“SP_Current_Equipment_Partner__c”:{
“显示值”:空,
“值”:“Eqpartner__1”
},
“SP_Current_Equipment_Partner__r”:{
“显示值”:“Eqpartner__1”
“价值”: ””
},
“SP_Delivery_Date__c”:{
“显示值”:“2016 年 9 月 2 日”,
“价值”:“2016-09-02”
},
“SP_Delivery_Note__c”:{
“显示值”:空,
“值”:“82849654”
},
“SP_End_of_Commissioning__c”:{
“显示值”:空,
“值”:“2019-03-02”
},
“SP_Product_Number__c”:{
“显示值”:空,
“值”:“1MV4567-6BJ60-4BD0-Z”
}
}
输出
[
“名称”:“EQ-10186735”,
"SP_Altitude__c": "ALT001",
"SP_Batch_Number__c": "Batch_number_001",
"SP_Classification__c": "产品",
"SP_Current_Equipment_Partner__c": "Eqpartner__1",
"SP_Current_Equipment_Partner__r": "Eqpartner__1",
"SP_Delivery_Date__c": "2016-09-02",
"SP_Delivery_Note__c": "82849654",
"SP_End_of_Commissioning__c": "2019-03-02"
“SP_Product_Number__c”:“1MV4567-6BJ60-4BD0-Z”
]
给定的输出是一个数组,但它有 key/value 对。所以我假设输出类型是 Object.
如果是这样,您可以使用 mapObject。
payload mapObject ((item, key) -> {
(key): item.value
} )
输出是
{
"Name": "EQ-10186735",
"SP_Altitude__c": "ALT001",
"SP_Batch_Number__c": "Batch_number_001",
"SP_Classification__c": "Products",
"SP_Current_Equipment_Partner__c": "Eqpartner__1",
"SP_Current_Equipment_Partner__r": "",
"SP_Delivery_Date__c": "2016-09-02",
"SP_Delivery_Note__c": "82849654",
"SP_End_of_Commissioning__c": "2019-03-02",
"SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
}
您还可以使用 pluck 获取对象数组,如下所示
payload pluck ((item, key) -> {
(key): item.value
})
输出:-
[
{
"Name": "EQ-10186735"
},
{
"SP_Altitude__c": "ALT001"
},
{
"SP_Batch_Number__c": "Batch_number_001"
},
{
"SP_Classification__c": "Products"
},
{
"SP_Current_Equipment_Partner__c": "Eqpartner__1"
},
{
"SP_Current_Equipment_Partner__r": ""
},
{
"SP_Delivery_Date__c": "2016-09-02"
},
{
"SP_Delivery_Note__c": "82849654"
},
{
"SP_End_of_Commissioning__c": "2019-03-02"
},
{
"SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
}
]
查看请求和期望的响应,键的值深一层。我使用在线 dw playground 传递您的输入请求,这里是获得所需输出的代码。
%dw 2.0 output application/json
payload mapObject ((value, key, index) -> {(key):value.value} )
输入Json { “姓名”: { “显示值”:空, “价值”:“EQ-10186735” }, “SP_Altitude__c”:{ “显示值”:空, “价值”:“ALT001” }, “SP_Batch_Number__c”:{ “显示值”:空, “值”:“Batch_number_001” }, “SP_Classification__c”:{ “显示值”:空, “价值”:“产品” }, “SP_Current_Equipment_Partner__c”:{ “显示值”:空, “值”:“Eqpartner__1” }, “SP_Current_Equipment_Partner__r”:{ “显示值”:“Eqpartner__1” “价值”: ”” }, “SP_Delivery_Date__c”:{ “显示值”:“2016 年 9 月 2 日”, “价值”:“2016-09-02” }, “SP_Delivery_Note__c”:{ “显示值”:空, “值”:“82849654” }, “SP_End_of_Commissioning__c”:{ “显示值”:空, “值”:“2019-03-02” }, “SP_Product_Number__c”:{ “显示值”:空, “值”:“1MV4567-6BJ60-4BD0-Z” } }
输出 [ “名称”:“EQ-10186735”, "SP_Altitude__c": "ALT001", "SP_Batch_Number__c": "Batch_number_001", "SP_Classification__c": "产品", "SP_Current_Equipment_Partner__c": "Eqpartner__1", "SP_Current_Equipment_Partner__r": "Eqpartner__1", "SP_Delivery_Date__c": "2016-09-02", "SP_Delivery_Note__c": "82849654", "SP_End_of_Commissioning__c": "2019-03-02" “SP_Product_Number__c”:“1MV4567-6BJ60-4BD0-Z” ]
给定的输出是一个数组,但它有 key/value 对。所以我假设输出类型是 Object.
如果是这样,您可以使用 mapObject。
payload mapObject ((item, key) -> {
(key): item.value
} )
输出是
{
"Name": "EQ-10186735",
"SP_Altitude__c": "ALT001",
"SP_Batch_Number__c": "Batch_number_001",
"SP_Classification__c": "Products",
"SP_Current_Equipment_Partner__c": "Eqpartner__1",
"SP_Current_Equipment_Partner__r": "",
"SP_Delivery_Date__c": "2016-09-02",
"SP_Delivery_Note__c": "82849654",
"SP_End_of_Commissioning__c": "2019-03-02",
"SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
}
您还可以使用 pluck 获取对象数组,如下所示
payload pluck ((item, key) -> {
(key): item.value
})
输出:-
[
{
"Name": "EQ-10186735"
},
{
"SP_Altitude__c": "ALT001"
},
{
"SP_Batch_Number__c": "Batch_number_001"
},
{
"SP_Classification__c": "Products"
},
{
"SP_Current_Equipment_Partner__c": "Eqpartner__1"
},
{
"SP_Current_Equipment_Partner__r": ""
},
{
"SP_Delivery_Date__c": "2016-09-02"
},
{
"SP_Delivery_Note__c": "82849654"
},
{
"SP_End_of_Commissioning__c": "2019-03-02"
},
{
"SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
}
]
查看请求和期望的响应,键的值深一层。我使用在线 dw playground 传递您的输入请求,这里是获得所需输出的代码。
%dw 2.0 output application/json
payload mapObject ((value, key, index) -> {(key):value.value} )