Karate 如何管理json值字符串中的变量?
我的空手道配置文件中有可变持卡人 我将其分配给新的entrID变量 我将JSON构建为字符串的主要内容Karate 如何管理json值字符串中的变量?,karate,Karate,我的空手道配置文件中有可变持卡人 我将其分配给新的entrID变量 我将JSON构建为字符串的主要内容 * def entrID = cardholder * def requestContactHistoryAdd = """ { "RequestBody": "{ \"ENTR_ID\" : \"entrID\", \"BHVR_ID\" : \"VRU\", }" } """ 现在我如何在json请求体内提供它 EDIT:因为您似乎有一个设计
* def entrID = cardholder
* def requestContactHistoryAdd =
"""
{
"RequestBody": "{ \"ENTR_ID\" : \"entrID\", \"BHVR_ID\" : \"VRU\", }"
}
"""
现在我如何在json请求体内提供它 EDIT:因为您似乎有一个设计非常糟糕的API,其中JSON包含一个嵌入式字符串(看起来像JSON) 请注意,我正在使用下面的
字符串类型:
您可以这样做:
* def entrID = 'foo'
* string temp = { "ENTR_ID" : "#(entrID)", "BHVR_ID" : "VRU" }
# note that you could have done this:
# def temp = '{ "ENTR_ID" : "' + entrID + '", "BHVR_ID" : "VRU" }'
* def body = { RequestBody: '#(temp)' }
* print body
这给了你:
08:17:25.671 [main] INFO com.intuit.karate - [print] {
"RequestBody": "{\"ENTR_ID\":\"foo\",\"BHVR_ID\":\"VRU\"}"
}
我也是这样解决的
* def entrID = someValueFromSomeWhere
* def bodyValue = "{ \"ENTR_ID\":\"" + entrID + "\", \"BHVR_ID\" : \"VRU\" }"
* def requestContactHistoryAdd =
"""
{
"RequestBody": "#(bodyValue)"
}
"""
我们也可以这样做
* def bodyValue = "{ \"ENTR_ID\":\"" + someValueFromSomeWhere + "\", \"BHVR_ID\" : \"VRU\" }"
* def requestContactHistoryAdd =
"""
{
"RequestBody": "#(bodyValue)"
}
"""
我同意将json构建为字符串是很难看的。。。但终点发展如下..不接受身体的另一种方式。。。这就是问题所在。我在文档中看到了这种情况。我会试着玩,也许我能解决它。thanks@SaidYusifli好的,我完全改变了我的答案。对你有用吗?但是请下次在你的问题上更清楚。哇,这真的很酷。如果我将变量声明为字符串而不是def,那么非常感谢。它带着所有的\“\”返回。