首页 > 解决方案 > 如何在请求中将动态值设置为json字符串的键

问题描述

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

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

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

标签: karate

解决方案


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

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

但你可以尝试这样的事情,

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

推荐阅读