Как извлечь несколько (случайных) значений из одного узла json

Я пытаюсь получить несколько значений из ответа JSON, который я получаю, но, кажется, не могу получить их из одного и того же случайного узла.

Я пытался поместить несколько переменных в один и тот же экстрактор, используя ";" и это работает, но проходит через узлы случайным образом и не извлекает нужные мне значения из того же

Источник будет что-то вроде

[
 {
  "Disabled": false,
  "Group": null,
  "Selected": false,
  "Text": "Text1",
  "Value": "Value1"
 },
 {
  "Disabled": false,
  "Group": null,
  "Selected": false,
  "Text": "Text2",
  "Value": "Value2"
 }
]

и я хотел бы получить из любого из 2-х узлов (случайным образом совпадающих) как текст, так и значение либо в массиве, который я могу использовать, либо в 2 переменные.

До сих пор он, кажется, принимает значение от одного узла и текст от другого (в более длинных источниках)

поэтому мой желаемый результат будет либо text1 и value1 или text2 и value2, а не сочетание обоих.

1 ответ

Решение
  1. Добавьте JSR223 PostProcessor как дочерний элемент запроса, который возвращает вышеуказанный JSON
  2. Поместите следующий код в область "Сценарий":

    def json = new groovy.json.JsonSlurper().parse(prev.getResponseData())
    def randomEntry = json.get(org.apache.commons.lang3.RandomUtils.nextInt(0, json.size()))
    vars.put('strBrandID', randomEntry.Value)
    vars.put('strBrandName', randomEntry.Text)
    
  3. Вот и все, вы должны иметь возможность ссылаться на пары Текст / Значение как ${strBrandID} а также ${strBrandName} где требуется

Дополнительная информация:

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