如何在请求中将动态值设置为json字符串的键

时间:2019-01-07 16:08:34

标签: karate

在以下JSON请求中:动态生成“ paid”的值。当我尝试将值传递给JSON字符串属性时,而不是用动态值替换“ payed”,而是将“ paid”作为字符串。

{
  "ENCRYP": {
    "data": "ENCRYPTED",
    "tEncryptedP": {
      "#(paid)": {
        "encryptedP": "#(parameters)"
      }
    }
  }
}

在这种情况下如何将动态值传递给JSON字符串属性?

1 个答案:

答案 0 :(得分:2)

您似乎正在尝试使用嵌入式表达式来设置动态键,

不确定是否可以使用嵌入式表达式设置新密钥。

但是您可以尝试类似的操作

* def paid = "PaidKey"
* def parameters = "PAID PARAMETERS"
* def enc = 
"""
{
  "ENCRYP": {
    "data": "ENCRYPTED",
    "tEncryptedP": {
    }
  }
}
"""
* def encryptedP = {"encryptedP": "#(parameters)"}
* eval enc.ENCRYP.tEncryptedP[paid] = encryptedP