我有一个如下所示的数组,它是过滤条件的输出。它有 documentItemName1、documentItemName2、documentItemName3 等字段,最小值为 1,最大值为 3。
对于每个 contentVersion documentItemToSigner,根据其中存在的 documentItemName{n} 数量,没有对象数量
有效载荷:
[
{
"contentVersion": "068DQ000000lK0iYAE",
"documentName": "ESRA with Exhibit_A",
"documentItemName1": "Signature001",
"typeCd1": "Signature",
"typeCd2": null,
"typeCd3": null,
"subtypeCd1": "CAPTURE",
"subtypeCd2": null,
"subtypeCd3": null
},
{
"contentVersion": "068DQ000000kK0OYAU",
"documentName": "Agreement 1",
"documentItemName1": "Signature001",
"documentItemName2": "Signature002",
"typeCd1": "Signature",
"typeCd2": "Signature",
"typeCd3": null,
"subtypeCd1": "CAPTURE",
"subtypeCd2": "LABEL",
"subtypeCd3": null
},
{
"contentVersion": "068DQ000000lK0OYAU",
"documentName": "Agreement 2",
"documentItemName1": "Signature001",
"documentItemName2": "Signature002",
"documentItemName3": "Signature003",
"typeCd1": "Signature",
"typeCd2": "Signature",
"typeCd3": "Signature",
"subtypeCd1": "CAPTURE",
"subtypeCd2": "CAPTURE",
"subtypeCd3": "CAPTURE"
}
]
我尝试过下面的脚本,但不确定如何根据其中的 documentItemName{no} 号创建对象。
例如:从有效负载中,我要过滤到此 contentVersion =“068DQ000000lK0OYAU”,其中包含 documentItemName1、documentItemName2、documentItemName3。因此,documentItemToSigner 数组应该有 3 个对象,它们映射如下
"documentItemToSigner": [{
documentItemName: documentItemName1,
"typeCd": typeCd1,
"subtypeCd": subtypeCd1
},
{
documentItemName: documentItemName2,
"typeCd": typeCd2,
"subtypeCd": subtypeCd3
},
{
documentItemName: documentItemName3,
"typeCd": typeCd3,
"subtypeCd": subtypeCd3
}]
对于示例 2:从有效负载中,如果我要过滤到此contentVersion = “068DQ000000lK0iYAE”,其中仅包含 documentItemName1。因此,documentItemToSigner 数组应该有 1 个对象,其映射方式如下
"documentItemToSigner": [{
documentItemName: documentItemName1,
"typeCd": typeCd1,
"subtypeCd": subtypeCd1
}]
"documentItemToSigner": (payload filter ((g, index) -> g.contentVersion == "068DQ000000lK0OYAU")) map ((item, index) -> {
"typeCd": item."typeCd{n}",
"subtypeCd": item."subtypeCd{n}",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": item."documentItemName{n}"
})
预期输出:
{
"documentItemToSigner": [
{
"typeCd": "Signature",
"subtypeCd": "CAPTURE",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": "Signature001"
},
{
"typeCd": "Signature",
"subtypeCd": "LABEL",
"documentItemName": "Signature002",
"eSignLiveExtension": {
"extractInd": false
}
},
{
"typeCd": "Signature",
"subtypeCd": "CAPTURE",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": "Signature003"
}
]
}
我从有效载荷中提取了以数字结尾的属性,并以易于映射到所需输出的方式对其进行格式化。
此解决方案假设后缀为一位数字。还
extractInd
固定为 true,因为没有关于如何使其像示例输出中那样动态化的指导。输出
您可以使用以下解决方案。这将根据特定内容版本的有效负载中的 documentItemName 数量动态生成数组。
这个怎么样?