首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于数据编织的JSON变换

基于数据编织的JSON变换
EN

Stack Overflow用户
提问于 2020-09-10 15:30:51
回答 2查看 66关注 0票数 0

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

输入JSON

代码语言:javascript
复制
{
    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

代码语言:javascript
复制
   {
      "originalReference": "882595596510490G",
      "modificationAmount": {
        "value": 500,
        "currency": "SEK"
      },
      "reference": "00001503PM",
      "merchantAccount": "Hastens_eCom_Test"
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-10 15:54:14

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

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

代码语言:javascript
复制
{
   "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"
}

以下数据编织表达式:

代码语言:javascript
复制
%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
}

将产生预期产出:

代码语言:javascript
复制
{
  "originalReference": "882595596510490G",
  "modificationAmount": {
    "value": 500,
    "currency": "SEK"
  },
  "reference": "00001503PM",
  "merchantAccount": "Hastens_eCom_Test"
}
票数 1
EN

Stack Overflow用户

发布于 2020-09-10 17:34:21

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

代码语言:javascript
复制
%dw 2.3
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63833009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档