karate - 如何在请求中将动态值设置为json字符串的键
问题描述
在下面的 JSON 请求中:“付费”的值是动态生成的。当我尝试将值传递给 JSON 字符串属性,而不是动态值来替换“付费”时,它将“付费”作为字符串。
{
"ENCRYP": {
"data": "ENCRYPTED",
"tEncryptedP": {
"#(paid)": {
"encryptedP": "#(parameters)"
}
}
}
}
在这种情况下,如何将动态值传递给 JSON 字符串属性?
解决方案
看起来您正在尝试使用嵌入式表达式设置动态键,
不确定是否可以使用嵌入式表达式设置新密钥。
但你可以尝试这样的事情,
* def paid = "PaidKey"
* def parameters = "PAID PARAMETERS"
* def enc =
"""
{
"ENCRYP": {
"data": "ENCRYPTED",
"tEncryptedP": {
}
}
}
"""
* def encryptedP = {"encryptedP": "#(parameters)"}
* eval enc.ENCRYP.tEncryptedP[paid] = encryptedP