[英]mapping payload with json object in dataweave
我想要做的是将 CodeOT 映射到我的有效负载中的每个对象,例如:
null/0 获取值 1 1 到 5 获取值 2 和 6 到 9 获取值 3
我不知道该怎么做,因为我是 dataweave 的新手
有效载荷示例:
{
"refSig" : "0110443372",
"indSap":2
},
{
"refSig" : "0000443942",
"indSap":0
},
{
"refSig" : "0117243942",
"indSap":null
}
提供了转换表,必须按原样使用,这是其中的一部分
{
"CodeSap": null,
"Libelle": "",
"CodeOT": 1
},
{
"CodeSap": 0,
"Libelle": "Elle a demandé un délai de paiement",
"CodeOT": 1
},
{
"CodeSap": 1,
"Libelle": "Elle a des factures SATD",
"CodeOT": 2
},
{
"CodeSap": 2,
"Libelle": "Elle a des factures remises à l’huissier",
"CodeOT": 2
}
我需要使用 CodeSap 将转换表中的 CodeOT 映射到有效负载中的 indSap
我开始这样做,但它似乎并没有把我带到任何地方
%dw 2.0
output application/json
---
lignesOK : payload map (item, index) -> {
bf: item mapObject (value, key) -> {
(key): value,
codeOt: varTable map (it,val) ->{
(val):(it)
}
}
}
上述有效负载示例的预期输出为:
{
"refSig" : "0110443372",
"CodeOT":2
},
{
"refSig" : "0000443942",
"CodeOT":1
},
{
"refSig" : "0117243942",
"CodeOT":1
}
假设输入和表是数组,并且表中的条目对于每个CodeSap
都是唯一的,则以下脚本可以工作,尽管由于提供的表不完整,输出与预期有些不同:
%dw 2.0
output application/json
var varTable=[{
"CodeSap": null,
"Libelle": "",
"CodeOT": 1
},
{
"CodeSap": 0,
"Libelle": "Elle a demandé un délai de paiement",
"CodeOT": 1
},
{
"CodeSap": 1,
"Libelle": "Elle a des factures SATD",
"CodeOT": 2
},
{
"CodeSap": 2,
"Libelle": "Elle a des factures remises à l’huissier",
"CodeOT": 2
}]
---
payload map (item, index) -> {
refSig: item.refSig,
codeOt: (varTable filter (item.indSap == $.CodeSap))[0].CodeOT
}
输出:
[
{
"refSig": "0110443372",
"codeOt": null
},
{
"refSig": "0000443942",
"codeOt": 1
},
{
"refSig": "0117243942",
"codeOt": 1
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.