我收到了来自 API 的以下响应:
{
"id": 306,
"FieldName": "customer.info.User",
}
根据此响应中的 FieldName 属性,我需要为另一个 API 构造一个有效负载,其预期输出如下:
以下是我需要的预期输出。
{
"customerList": [
{
"customerConditionHeader": {
"entityType": "CORPORATIONS",
"country": "FOR_ALL",
"entityRole": "CUSTOMER"
},
"customer": {
"info": {
"user": "some_value"
}
}
}
]
}
我将只关注 JSON 的一部分并留下提示。
karate.set(variableName, path, value)
API 可以做一些非常特殊的事情。例如:
* def response = { id: 306, FieldName: 'customer.info.user' }
* def payload = {}
* karate.set('payload', response.FieldName, 'some_value')
* match payload == { customer: { info: { user: 'some_value' } } }
注意
customer.info.user
是如何分解为 JSON 的。剩下的事情就留给你自己去解决,你可以使用 JS 进行更奇怪的转换。请参阅其他答案以获取更多提示,例如:https://stackoverflow.com/a/76091034/143475和https://stackoverflow.com/a/53120851/143475