我正在使用 JSON 断言来断言是否存在 JSON 路径。假设我有一个“包含”橱柜数组的“房间”数组的 JSON 响应,就像下面的示例一样
"rooms":
[
{
"cabinets":
[
{
"id":"HFXXXX",
"locationid":null,
"name":"HFXXXX",
"type":"Hosp"
},
{
"id":"HFYYYY",
"locationid":null,
"name":"HFYYYY",
"type":"Hosp"
},
{
"id":"HFZZZZ",
"locationid":null,
"name":"HFZZZZ",
"type":"Hosp"
}
],
"hasMap":false,
"id":"2",
"map":
{
"h":null,
"w":null,
"x":null,
"y":null
},
"name":"Fantastic Room#3"
}
],
[
{ "cabinets":
[
{
"id":"HFBBBB",
"locationid":null,
"name":"HFBBBB",
"type":"Hosp"
}
],
"hasMap":false,
"id":"3",
"map":
{
"h":null,
"w":null,
"x":null,
"y":null
},
"name":"BallRoom #4"
}
]
我想确保所有机柜的“id”都是正确的,因此我将 JSON 路径定义为rooms[*].cabinets[*].id并期望值为["HFXXXX","HFYYYY","HFZZZZ","HFBBBB"]
除了有时以不同的顺序["HFBBBB", "HFXXX","HFYYYY","HFZZZZ"]而不是返回值之外,这非常有效["HFXXXX","HFYYYY","HFZZZZ","HFBBBB"],因此断言将失败。问题在于返回数组的顺序,而不是值本身。
有没有办法在断言之前对响应的顺序进行排序并继续使用 JSON 断言?或者这样做的唯一方法是提取我想要断言的值并在 JSR223 断言(groovy 或 javascript)中使用它?如果是这种情况,您能否向我展示一个如何在 JSR223 插件中执行此操作的示例。