通过Dataweave

问题描述

我有一个输入JSON,下面想将其转换为另一个JSON结构:

输入JSON

{
    data={
       
            schema=81Ze2hDYGKOQYW02LVtUMQ,payload={
                        value__c=500,reference__c=00001503PM,CreatedById=0051x000003SQ9eAAG,originalReference__c=882595596510490G,currency__c=SEK,CreatedDate=2020-09-10T15:16:57.175Z,merchantAccount__c=Hastens_eCom_Test
                    },event={replayId=18188}
        },channel=/event/Capturepayment__e
}

,我想将其转换为以下格式。

输出JSON

   {
      "originalReference": "882595596510490G","modificationAmount": {
        "value": 500,"currency": "SEK"
      },"reference": "00001503PM","merchantAccount": "Hastens_eCom_Test"
    }

解决方法

您输入的有效负载似乎不是有效的JSON。

使用已调整为有效JSON的输入有效负载:

{
   "data":{
      "schema":"81Ze2hDYGKOQYW02LVtUMQ","payload":{
         "value__c":500,"reference__c":"00001503PM","CreatedById":"0051x000003SQ9eAAG","originalReference__c":"882595596510490G","currency__c":"SEK","CreatedDate":"2020-09-10T15:16:57.175Z","merchantAccount__c":"Hastens_eCom_Test"
      },"event":{
         "replayId":"18188"
      }
   },"channel":"/event/Capturepayment__e"
}

以下数据编织表达式:

%dw 2.0
output application/json
---
{
  originalReference: payload.data.payload.originalReference__c,modificationAmount: {
    value: payload.data.payload.value__c,currency: payload.data.payload.currency__c,},reference: payload.data.payload.reference__c,merchantAccount: payload.data.payload.merchantAccount__c
}

将产生预期的输出:

{
  "originalReference": "882595596510490G","modificationAmount": {
    "value": 500,"currency": "SEK"
  },"reference": "00001503PM","merchantAccount": "Hastens_eCom_Test"
}
,

下面的dwl将产生预期的输出

%dw 2.3
output application/json
---
{
  originalReference: payload.data.payload.originalReference__c,merchantAccount: payload.data.payload.merchantAccount__c
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...