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"}

}

как видите, "нулевые" ключи внутри вложенного массива не удаляются.

Пожалуйста, предложите решение.

0 ответов

Другие вопросы по тегам