如何通过Jolt转换WebService响应为TeamCity参数插件所需结构
Jolt转换规则实现
输入JSON结构
{ "software": [ { "service": "someService", "versions": [ "24.32.1.57-docker", "24.32.1.56-docker" ] } ] }
目标JSON结构
{ "options": [ { "key": "24.32.1.57-docker", "value": "24.32.1.57-docker", "enabled": true, "default": "as default first entry in list" }, { "key": "24.32.1.56-docker", "value": "24.32.1.56-docker", "enabled": true } ] }
Jolt转换规则
[ { "operation": "shift", "spec": { "software": { "*": { "versions": { "*": { "@": "options[&1].key", "@": "options[&1].value" } } } } } }, { "operation": "default", "spec": { "options": { "*": { "enabled": true } } } }, { "operation": "modify-overwrite-beta", "spec": { "options": { "0": { "default": "as default first entry in list" } } } } ]
规则说明
- Shift操作:遍历
software数组内的对象,提取versions数组的元素,分别映射到options数组对应位置的key和value字段,&1用于匹配当前数组索引来定位options的位置。 - Default操作:给所有
options对象统一添加enabled: true字段,保证每个选项都具备该属性。 - Modify-overwrite-beta操作:针对
options数组的第一个元素(索引为0),添加default字段并设置指定值,实现第一个条目作为默认项的需求。
内容的提问来源于stack exchange,提问作者Nikolay Marinov
相关产品推荐
相关产品推荐

