如何从数组中删除空元素

Jon*_*ham 1 groovy

我正在尝试删除空元素,即数组中的双引号,但我不确定如何迭代 json 数组。下面是我的 json

{
  "body": {
   "newId":"value1"
  },
  "header": {
    "appId": "someVal",
    "pricingSchedule": [
      "price1",
      "price2",
      "price3",
      "",
      "",
      ""
    ]
  },
  "trail": {

    "pageSize": "50"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是,header我想迭代pricingSchedule数组并删除空元素,如果数组中没有元素,那么我只想保留空数组而不是删除它。

下面是我尝试的代码 -

def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())

def newRequest = evaluate(request.inspect())


request.body.each { entry ->
    if (entry.getValue().equals('') || entry.getValue().equals([''])) {
        newRequest.body.remove(entry.getKey())
    }
}


request.header.each{ entry ->

//  String key=entry.getKey().equals("pricingSchedule")


    entry.getKey().equals("pricingSchedule").each{ entry1 ->

        log.info(entry1) //This does not print anything and gives me error

        }

}


def arguments = new org.apache.jmeter.config.Arguments()
sampler.setArguments(arguments)
sampler.addNonEncodedArgument('', new groovy.json.JsonBuilder(newRequest).toPrettyString(), '')
sampler.setPostBodyRaw(true)
Run Code Online (Sandbox Code Playgroud)

tim*_*tes 5

要从 中删除空元素pricingSchedule,只需执行以下操作:

request.header.pricingSchedule = request.header.pricingSchedule.findAll()
Run Code Online (Sandbox Code Playgroud)

这将删除所有为 null 的元素或空字符串