如何从同一个 json 节点中提取多个(随机)值

How to extract multiple (random) values from the same json node

我正在尝试从我收到的 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 添加为 returns 上述 JSON
  2. 请求的子项
  3. 将以下代码放入"Script"区域:

    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)
    
  4. 就是这样,您应该能够在需要时将 Text/Value 对称为 ${strBrandID}${strBrandName}

更多信息: