RestAssured JsonPath :层次结构中元素的平面数组
RestAssured JsonPath: flat array of elements in hierarchy
我正在使用 rest-assured 编写冒烟测试,并希望遍历 api 以确保不会发生意外错误。
我的数据结构如下所示:
{
...
"sites": [
{
...
"groups": [
{
...
"locations": [
{
...
"racks": [
{
"rackId": 123456789,
...
},
{
"rackId": 987654321,
...
},
...
]
}
]
}
]
},
{
...
"groups": [
{
...
"locations": [
{
...
"racks": [
{
"rackId": 11111111,
...
},
{
"rackId": 22222222,
...
},
...
]
}
]
}
]
},
...
]
}
使用 RestAssured 中捆绑的 JsonPath 我试图获取所有 rackId 的平面列表,然后调用这些 rackId 的后续请求。
jsonPath.getList("sites.groups.locations.racks.rackId", Long.class);
>> java.lang.NumberFormatException: For input string: "[[[406071537, 406071538, 406071539, 406071540, 406071541]]]"
我尝试使用此路径,但没有成功,因为我相信此语法仅适用于其他 JsonPath 实现,而不适用于与 rest-assured 捆绑在一起的实现
"$.sites[*].groups[*].locations[*].racks[*].rackId"
我现在归结为这个,它给了我一个又一个的列表列表,然后我可以把自己弄平。但是我遇到了问题,默认情况下数字被解释为整数,但我收到的是长值。
List list = jsonPath.getList("sites.groups.locations.racks.rackId");
有什么想法吗?
只需使用flatten()
:
List list = jsonPath.getList("sites.groups.locations.racks.rackId.flatten()");
我正在使用 rest-assured 编写冒烟测试,并希望遍历 api 以确保不会发生意外错误。
我的数据结构如下所示:
{
...
"sites": [
{
...
"groups": [
{
...
"locations": [
{
...
"racks": [
{
"rackId": 123456789,
...
},
{
"rackId": 987654321,
...
},
...
]
}
]
}
]
},
{
...
"groups": [
{
...
"locations": [
{
...
"racks": [
{
"rackId": 11111111,
...
},
{
"rackId": 22222222,
...
},
...
]
}
]
}
]
},
...
]
}
使用 RestAssured 中捆绑的 JsonPath 我试图获取所有 rackId 的平面列表,然后调用这些 rackId 的后续请求。
jsonPath.getList("sites.groups.locations.racks.rackId", Long.class);
>> java.lang.NumberFormatException: For input string: "[[[406071537, 406071538, 406071539, 406071540, 406071541]]]"
我尝试使用此路径,但没有成功,因为我相信此语法仅适用于其他 JsonPath 实现,而不适用于与 rest-assured 捆绑在一起的实现
"$.sites[*].groups[*].locations[*].racks[*].rackId"
我现在归结为这个,它给了我一个又一个的列表列表,然后我可以把自己弄平。但是我遇到了问题,默认情况下数字被解释为整数,但我收到的是长值。
List list = jsonPath.getList("sites.groups.locations.racks.rackId");
有什么想法吗?
只需使用flatten()
:
List list = jsonPath.getList("sites.groups.locations.racks.rackId.flatten()");