JMeter. Удалить параметры из тела запроса вложенного JSON
Для следующего JSON:
{
"sortOrder": "A",
"sortField": "policyNumber",
"searchTerritories": [
"I15",
"MG01",
"G2E"
],
"pageNumberRequested": "1",
"pageCountRequested": "50",
"policyStatus" : "null",
"advancedFilters": {
"test" : "null"}
}
Я хочу получить выходной JSON после удаления ключей с нулевым значением
Обязательный JSON:
{
"sortOrder": "A",
"sortField": "policyNumber",
"searchTerritories": [
"I15",
"MG01",
"G2E"
],
"pageNumberRequested": "1",
"pageCountRequested": "50",
"advancedFilters": {
}
}
Я использую этот скрипт в препроцессоре JSR233, я нашел решение ниже в одном из предыдущих постов
def oldRequest = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
oldRequest.values().removeAll{it.equals('null')}
def newRequest = new groovy.json.JsonOutput().toJson(oldRequest)
sampler.getArguments().removeAllArguments()
sampler.setPostBodyRaw(true)
sampler.addNonEncodedArgument('',new groovy.json.JsonOutput().prettyPrint(newRequest),'')
Приведенный выше код вернул:
{
"sortOrder": "A",
"sortField": "policyNumber",
"searchTerritories": [
"I15",
"MG01",
"G2E"
],
"pageNumberRequested": "1",
"pageCountRequested": "50",
"advancedFilters": {
"test" : "null"}
}
как видите, "нулевые" ключи внутри вложенного массива не удаляются.
Пожалуйста, предложите решение.