我有以下JSON。如果提供空字符串,我的目标是发布值为“”的参数(空字符串),如果提供了一些预定义的字符串,如“nullValue”,则从调用中删除参数。
{
"Name": "Some Name",
"AddressLine1": "1st Str.",
"BuyerIdentifier": "nullValue",
}
我已经看了几个问题,但是没有为我提供的PreProcessor解决方案。它们主要提供removeArgument()方法。
for (Iterator iterator = sampler.getArguments().iterator();){
prop = iterator.next();
String value = prop.getStringValue();
if (value == "nullValue") {
sampler.removeArgument(prop.getName());
}
}
我在下面跑了
sampler.getArguments().getArgumentCount()
它返回“1”,因此整个JSON作为一个参数返回。所以我不能删除个别论点。 感谢。
答案 0 :(得分:1)
将以下代码放入"脚本"面积:
def oldRequest = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
oldRequest.values().removeAll{it.equals('nullValue')}
def newRequest = new groovy.json.JsonOutput().toJson(oldRequest)
sampler.getArguments().removeAllArguments()
sampler.setPostBodyRaw(true)
sampler.addNonEncodedArgument('',new groovy.json.JsonOutput().prettyPrint(newRequest),'')
假设您的有效负载是有效的JSON,PreProcessor将删除所有具有nullValue
值的JSON元素。
更多信息: