Получить JSON имен ключей в Groovy - PullRequest
0 голосов
/ 18 января 2020

Во время тестирования JMeter мне нужно получить массив JSON имен ключей первого уровня. Т.е. из JSON вроде

{
    "name": "Sally",
    "address": {
        "country": "Kuba",
        "city": "Havana"
    }
}

Я хочу получить

<name, address>

Я использую Groovy & JsonSlurper, но понятия не имею, как это получить.

Ответы [ 2 ]

2 голосов
/ 18 января 2020

Если у вас уже есть объект JSON, вы можете сделать:

println jsonObject.keySet()

Если у вас его нет, вам потребуется его создать. С stringfied JSON вы можете сделать:

def json =  '{"name": "Sally","address": {"country": "Kuba","city": "Havana"}}'
def jsonObject = new JsonSlurper().parseText(json)
println jsonObject.keySet() 
0 голосов
/ 20 января 2020
  1. Добавьте JSR223 PostProcessor как дочерний элемент запроса, который возвращает значение выше JSON
  2. Поместите следующий код в область «Сценарий»:

    new groovy.json.JsonSlurper().parse(prev.getResponseData()).keySet().eachWithIndex { key, index ->
        log.info('Key ' + index + ': ' + key)
    }
    

Объяснение:

  • prev является экземпляром SampleResult , который обеспечивает доступ к родительскому объекту результата Sampler
  • в вашем случае JsonSlurper возвращает "slurped" JSON как LazyMap , чтобы вы могли получить доступ к его ключам, вызвав keySet () function

Ссылки:

...