Jolt- 基于索引需要迭代一个列表并从索引中形成公共对象
Jolt- Based on the index need to iterate a list and form common object from the index
我需要迭代一个列表,该列表可以具有相同的标签名称但具有不同的索引,例如 0、1、2。所以我需要迭代列表,取出公共索引并从该索引中取出名称和值标签并形成另一个列表。
要求:
{
"characteristic": [
{
"name": "BucketName",
"value": "testName0",
"@type": "bucketInfo",
"arrayIndex": "0"
},
{
"name": "BucketName",
"value": "testName1",
"@type": "bucketInfo",
"arrayIndex": "1"
},
{
"name": "BucketName",
"value": "testName2",
"@type": "bucketInfo",
"arrayIndex": "2"
},
{
"name": "BucketId",
"value": "testId0",
"@type": "bucketInfo",
"arrayIndex": "0"
},
{
"name": "BucketId",
"value": "testId1",
"@type": "bucketInfo",
"arrayIndex": "1"
},
{
"name": "BucketId",
"value": "testId2",
"@type": "bucketInfo",
"arrayIndex": "2"
}
]
}
需要回复:
{
"bucketList": [
{
"BucketName": "testName0",
"BucketId": "testId0"
},
{
"BucketName": "testName1",
"BucketId": "testId1"
},
{
"BucketName": "testName2",
"BucketId": "testId2"
}
]
}
我们如何根据 alist 的索引实现这一点?
当有更多元素时如何处理这种情况,如果值没有出现则跳过,只添加出现的标签。
请求示例:
{
"characteristic": [
{
"name": "BucketName",
"value": "testName0",
"@type": "bucketInfo",
"arrayIndex": "0"
},
{
"name": "BucketId",
"value": "testId0",
"@type": "bucketInfo",
"arrayIndex": "0"
},
{
"name": "BucketType",
"value": "testType1",
"@type": "bucketInfo",
"arrayIndex": "1"
},
{
"name": "BucketId",
"value": "testId1",
"@type": "bucketInfo",
"arrayIndex": "1"
},
{
"name": "BucketName",
"value": "testName2",
"@type": "bucketInfo",
"arrayIndex": "2"
},
{
"name": "BucketId",
"value": "testId2",
"@type": "bucketInfo",
"arrayIndex": "2"
},
{
"name": "BucketId",
"value": "testId3",
"@type": "bucketInfo",
"arrayIndex": "3"
},
{
"name": "BucketName",
"value": "testName3",
"@type": "bucketInfo",
"arrayIndex": "3"
},
{
"name": "BucketData",
"value": "testData3",
"@type": "bucketInfo",
"arrayIndex": "3"
}
]
}
预期响应:
{
"bucketlist": [
{
"BucketName": "testName0",
"BucketId": "testId0"
},
{
"BucketType": "testType1",
"BucketId": "testId1"
},
{
"BucketName": "testName2",
"BucketId": "testId2"
},
{
"BucketName": "testName3",
"BucketId": "testId3",
"BucketData": "testData3"
}
]
}
您可以应用两个连续的 shift 转换。以"@(2,arrayIndex)"作为公因数,以便在第一次转换中合并公共标记数组下的元素,然后在第二次转换中根据需要显示它们这样作为
[
{
"operation": "shift",
"spec": {
"characteristic": {
"*": {
"value": {
"@(1,value)": "@(2,arrayIndex).@(2,name)"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "bucketList[]"
}
}
]
我需要迭代一个列表,该列表可以具有相同的标签名称但具有不同的索引,例如 0、1、2。所以我需要迭代列表,取出公共索引并从该索引中取出名称和值标签并形成另一个列表。
要求:
{
"characteristic": [
{
"name": "BucketName",
"value": "testName0",
"@type": "bucketInfo",
"arrayIndex": "0"
},
{
"name": "BucketName",
"value": "testName1",
"@type": "bucketInfo",
"arrayIndex": "1"
},
{
"name": "BucketName",
"value": "testName2",
"@type": "bucketInfo",
"arrayIndex": "2"
},
{
"name": "BucketId",
"value": "testId0",
"@type": "bucketInfo",
"arrayIndex": "0"
},
{
"name": "BucketId",
"value": "testId1",
"@type": "bucketInfo",
"arrayIndex": "1"
},
{
"name": "BucketId",
"value": "testId2",
"@type": "bucketInfo",
"arrayIndex": "2"
}
]
}
需要回复:
{
"bucketList": [
{
"BucketName": "testName0",
"BucketId": "testId0"
},
{
"BucketName": "testName1",
"BucketId": "testId1"
},
{
"BucketName": "testName2",
"BucketId": "testId2"
}
]
}
我们如何根据 alist 的索引实现这一点?
当有更多元素时如何处理这种情况,如果值没有出现则跳过,只添加出现的标签。 请求示例:
{
"characteristic": [
{
"name": "BucketName",
"value": "testName0",
"@type": "bucketInfo",
"arrayIndex": "0"
},
{
"name": "BucketId",
"value": "testId0",
"@type": "bucketInfo",
"arrayIndex": "0"
},
{
"name": "BucketType",
"value": "testType1",
"@type": "bucketInfo",
"arrayIndex": "1"
},
{
"name": "BucketId",
"value": "testId1",
"@type": "bucketInfo",
"arrayIndex": "1"
},
{
"name": "BucketName",
"value": "testName2",
"@type": "bucketInfo",
"arrayIndex": "2"
},
{
"name": "BucketId",
"value": "testId2",
"@type": "bucketInfo",
"arrayIndex": "2"
},
{
"name": "BucketId",
"value": "testId3",
"@type": "bucketInfo",
"arrayIndex": "3"
},
{
"name": "BucketName",
"value": "testName3",
"@type": "bucketInfo",
"arrayIndex": "3"
},
{
"name": "BucketData",
"value": "testData3",
"@type": "bucketInfo",
"arrayIndex": "3"
}
]
}
预期响应:
{
"bucketlist": [
{
"BucketName": "testName0",
"BucketId": "testId0"
},
{
"BucketType": "testType1",
"BucketId": "testId1"
},
{
"BucketName": "testName2",
"BucketId": "testId2"
},
{
"BucketName": "testName3",
"BucketId": "testId3",
"BucketData": "testData3"
}
]
}
您可以应用两个连续的 shift 转换。以"@(2,arrayIndex)"作为公因数,以便在第一次转换中合并公共标记数组下的元素,然后在第二次转换中根据需要显示它们这样作为
[
{
"operation": "shift",
"spec": {
"characteristic": {
"*": {
"value": {
"@(1,value)": "@(2,arrayIndex).@(2,name)"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "bucketList[]"
}
}
]