有人可以帮我转换我的输入数据吗?下面是我写的 Jolt,但没有提供我想要的输出,它将输入转换为数组。但我想将我的输入转换为列表。
这是输入:
[
{
"domain-specific-features": {
"features": [
{
"id": 3581,
"name": "search-hello"
},
{
"id": 3582,
"name": "search-rmn"
},
{
"id": 3864,
"name": "search-email"
},
{
"id": 3865,
"name": "search-sr"
},
{
"id": 3866,
"name": "search-order"
},
{
"id": 3867,
"name": "search-disconnected-customer"
},
{
"id": 3868,
"name": "search-customer-id"
},
{
"id": 3869,
"name": "search-customer-number"
}
]
}
},
{
"input": {
"mobile-number": "1234567890",
"pattern": "search"
}
}
]
这是我尝试过的震动,并且正在数组中获取 URL:
[
{
"operation": "shift",
"spec": {
"*": {
"domain-specific-features": {
"resultStatus": "resultStatus",
"features": {
"*": "mobility\\-callerId\\-featureList[].feature"
}
},
"input": "input"
}
}
},
{
"operation": "shift",
"spec": {
"resultStatus": "resultStatus",
"mobility\\-callerId\\-featureList": {
"*": {
"@(2,input)": {
"mobile-number": "mobility\\-callerId\\-featureList[&2].mobileNumber",
"pattern": "mobility\\-callerId\\-featureList[&2].pattern"
},
"*": "mobility\\-callerId\\-featureList[&1].&"
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"mobility\\-call*rId\\-featureList": {
"*": {
"fea*ure": {
"mobility\\-callerId\\-featureList\\-url": "=concat('/epsp-pattern/',@(2,pattern),'/',@(1,name),'?', 'mobile-number=', @(2,mobileNumber), '&appPatternFeatureId=', @(1,id))"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"resultStatus": {
"#NO_RECORD": "resultStatus.status",
"#No records found": "resultStatus.message",
"#7000": "resultStatus.code"
},
"mobility\\-callerId\\-featureList": {
"*": {
"feature": {
"mobility\\-callerId\\-featureList\\-url": "mobility\\-callerId\\-featureList[&2].&"
}
}
}
}
}
]
这是我的预期输出:
{
"mobility-callerId-featureList" : ["/epsp-pattern/search/search-hello?mobile-number=1234567890&appPatternFeatureId=3581", "/epsp-pattern/search/search-rmn?mobile-number=1234567890&appPatternFeatureId=3582", "/epsp-pattern/search/search-email?mobile-number=1234567890&appPatternFeatureId=3864", "/epsp-pattern/search/search-sr?mobile-number=1234567890&appPatternFeatureId=3865", "/epsp-pattern/search/search-order?mobile-number=1234567890&appPatternFeatureId=3866", "/epsp-pattern/search/search-disconnected-customer?mobile-number=1234567890&appPatternFeatureId=3867", "/epsp-pattern/search/search-customer-id?mobile-number=1234567890&appPatternFeatureId=3868", "/epsp-pattern/search/search-customer-number?mobile-number=1234567890&appPatternFeatureId=3869"]
}
您可以再次改变输出以获得所需的输出:
[
{
"operation": "shift",
"spec": {
"*": { //matches the top-level key (mobility-callerId-featureList)
"*": { //matches each object within the array
"*": "&" //matches each key-value pair within the nested objects.
//'&' to keep the value and place it directly under the top-level key
}
}
}
}
]
所以你的整个 Jolt 就变成了这样:
[
{
"operation": "shift",
"spec": {
"*": {
"domain-specific-features": {
"resultStatus": "resultStatus",
"features": {
"*": "mobility\\-callerId\\-featureList[].feature"
}
},
"input": "input"
}
}
},
{
"operation": "shift",
"spec": {
"resultStatus": "resultStatus",
"mobility\\-callerId\\-featureList": {
"*": {
"@(2,input)": {
"mobile-number": "mobility\\-callerId\\-featureList[&2].mobileNumber",
"pattern": "mobility\\-callerId\\-featureList[&2].pattern"
},
"*": "mobility\\-callerId\\-featureList[&1].&"
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"mobility\\-call*rId\\-featureList": {
"*": {
"fea*ure": {
"mobility\\-callerId\\-featureList\\-url": "=concat('/epsp-pattern/',@(2,pattern),'/',@(1,name),'?', 'mobile-number=', @(2,mobileNumber), '&appPatternFeatureId=', @(1,id))"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"resultStatus": {
"#NO_RECORD": "resultStatus.status",
"#No records found": "resultStatus.message",
"#7000": "resultStatus.code"
},
"mobility\\-callerId\\-featureList": {
"*": {
"feature": {
"mobility\\-callerId\\-featureList\\-url": "mobility\\-callerId\\-featureList[&2].&"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": {
"*": "&"
}
}
}
}
]