Ran*_*tne 2 java json rest-assured rest-assured-jsonpath
我正在使用可放心的方式编写冒烟测试,并且想要遍历api以确保不会发生意外错误。
我有一个看起来像这样的数据结构:
{
...
"sites": [
{
...
"groups": [
{
...
"locations": [
{
...
"racks": [
{
"rackId": 123456789,
...
},
{
"rackId": 987654321,
...
},
...
]
}
]
}
]
},
{
...
"groups": [
{
...
"locations": [
{
...
"racks": [
{
"rackId": 11111111,
...
},
{
"rackId": 22222222,
...
},
...
]
}
]
}
]
},
...
]
}
Run Code Online (Sandbox Code Playgroud)
使用RestAssured中捆绑的JsonPath,我试图获取所有rackId的固定列表,然后为这些rackId调用后续请求。
jsonPath.getList("sites.groups.locations.racks.rackId", Long.class);
>> java.lang.NumberFormatException: For input string: "[[[406071537, 406071538, 406071539, 406071540, 406071541]]]"
Run Code Online (Sandbox Code Playgroud)
我尝试使用此路径,但是没有用,因为我认为此语法仅适用于其他JsonPath实现,而不适用于与其他保证捆绑在一起的实现
"$.sites[*].groups[*].locations[*].racks[*].rackId"
Run Code Online (Sandbox Code Playgroud)
现在,我开始讨论这个问题,它给出了列表列表,然后可以使自己扁平化。但是我有一个问题,数字默认情况下解释为整数,但是我收到的是Long值。
List list = jsonPath.getList("sites.groups.locations.racks.rackId");
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
只需使用flatten():
List list = jsonPath.getList("sites.groups.locations.racks.rackId.flatten()");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3284 次 |
| 最近记录: |