如何使用 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} )