在对 Ready API / SOAP UI 中的参数的响应中传输同级元素

transfer a sibling element in a reponse to a parameter in Ready API / SOAP UI

我有一个 REST 端点,returns 有这样的响应

[
 {
  "id": "dbfff519-e8f6-4db3-9e26-a4e9014dc360",
  "code": "123456789012345678901234567890123456789012345678901234567890",
  "name": "client-code-with-character-length-sixty",
 },
 {
  "id": "a673fb54-3503-4996-ba9b-a4e9014dc3ea",
  "code": "18MTH",
  "name": "18 Month",
},
  {
  "id": "60b781e3-4515-40f5-81ee-a4e9014dc400",
  "code": "2periods",
  "name": "I Have 2 Periods",
}...

等等

我希望能够检索 ID,例如,code="2periods" UI 可以使用 ResponseAsxml(使用 xpath)或 Response with JSONPath 进行检索。如果我使用前者,我已经设法获得以下几乎找回我的 ID

//Response[1]/e[code='2periods']/id

但这看起来像这样

<id>0bc4aa5f-f8ab-4efe-b788-a4e9014dc45f</id>

而且我不知道如何删除开始和结束标记,id 必须只是 GUID。

我不知道如何在 JSONPath 中做类似的事情 - 我只设法得到类似

的东西

$[3].id

可以工作,但在测试环境中不能保证实体的顺序。

对于 ResponseAsXml 使用 XPath 仅获取没有 <id> 标记的 id 值,只需将 /text() 添加到您的实际表达式中:

//Response[1]/e[code='2periods']/id/text()

如果你想用 Response 属性 和 JSONPath 做同样的事情,试试:

$..[?(@.['code']=='2periods')].id[0]

希望对您有所帮助,