dataweave - 通过 Dataweave 进行 JSON 转换
问题描述
我有一个输入 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"
}
推荐阅读
- python - COPY INTO 从 Azure Dala Lake gen2 到 Azure Synapse 不执行任何操作
- html - 分页符中的行跨度
- delphi - 如何使用 Delphi 将 Shift 光标向下发送到另一个程序?
- regex - 在 shell 中提取子字符串的更优雅的方法
- ssl - 我们如何使用 x509certificates 加载证书签名请求?
- webforms - 身份服务器 4 引发重定向 uri 未定义错误
- postgresql - pg_rewind:源和目标集群在同一时间线上
- optimization - 在 Amazon QLDB 中优化时间范围过滤器
- react-native - formik 在后台使用 formData 吗?
- c# - 当对象被序列化/反序列化时,委托/事件中的方法引用会做什么?