空手道 - 将 Json 数组转换为另一种形式
Karate - Convert a Json array into another form
我有以下数据,我需要修改其中的一些值以便在空手道中进一步处理。
输入Json: (ReqCalculationInput.json)
{
"route_parameters": {
"route_type": "Distance",
"enc_hazards": [
{
"id": 0,
"severity": 4
},
{
"id": 1,
"severity": 4
},
{
"id": 2,
"severity": 4
}
]
}
}
}
输出数据:
{
"route_parameters": {
"route_type": "Distance",
"enc_hazards": [
{
"id": 0,
"severity": "Danger"
},
{
"id": 1,
"severity": "Danger"
},
{
"id": 2,
"severity": "Danger"
}
]
}
}
}
如您所见,我需要将所有严重性值替换为“4”中的 'Danger'。
到目前为止我的代码:
* def requestBodyJson = read('classpath:data/routing/ReqCalculationInput.json')
* def fun = function(x){ return {if (x.severity === 4) {x.severity: "Danger"}}}
* def formattedInput = karate.map(requestBodyJson.route_parameters.enc_hazards, fun)
* print formattedInput
任何实现相同目标的提示?
只是为了好玩,我会给你一个可以在空手道中使用的单线1.X
* data.route_parameters.enc_hazards = data.route_parameters.enc_hazards.map(x => x.severity == 4 ? {id: x.id, severity: 'Danger' } : x)
这里有一个更容易理解的版本:
* def fun = function(x){ return x.severity == 4 ? {id: x.id, severity: 'Danger' } : x }
* data.route_parameters.enc_hazards = karate.map(data.route_parameters.enc_hazards, fun)
我有以下数据,我需要修改其中的一些值以便在空手道中进一步处理。
输入Json: (ReqCalculationInput.json)
{
"route_parameters": {
"route_type": "Distance",
"enc_hazards": [
{
"id": 0,
"severity": 4
},
{
"id": 1,
"severity": 4
},
{
"id": 2,
"severity": 4
}
]
}
}
}
输出数据:
{
"route_parameters": {
"route_type": "Distance",
"enc_hazards": [
{
"id": 0,
"severity": "Danger"
},
{
"id": 1,
"severity": "Danger"
},
{
"id": 2,
"severity": "Danger"
}
]
}
}
}
如您所见,我需要将所有严重性值替换为“4”中的 'Danger'。
到目前为止我的代码:
* def requestBodyJson = read('classpath:data/routing/ReqCalculationInput.json')
* def fun = function(x){ return {if (x.severity === 4) {x.severity: "Danger"}}}
* def formattedInput = karate.map(requestBodyJson.route_parameters.enc_hazards, fun)
* print formattedInput
任何实现相同目标的提示?
只是为了好玩,我会给你一个可以在空手道中使用的单线1.X
* data.route_parameters.enc_hazards = data.route_parameters.enc_hazards.map(x => x.severity == 4 ? {id: x.id, severity: 'Danger' } : x)
这里有一个更容易理解的版本:
* def fun = function(x){ return x.severity == 4 ? {id: x.id, severity: 'Danger' } : x }
* data.route_parameters.enc_hazards = karate.map(data.route_parameters.enc_hazards, fun)