Как извлечь несколько (случайных) значений из одного узла 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 ответ
- Добавьте JSR223 PostProcessor как дочерний элемент запроса, который возвращает вышеуказанный JSON
Поместите следующий код в область "Сценарий":
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)
Вот и все, вы должны иметь возможность ссылаться на пары Текст / Значение как
${strBrandID}
а также${strBrandName}
где требуется
Дополнительная информация: