json-Path (Restassured) как обойти корневой элемент или использовать подстановочные знаки для получения значений узлов - PullRequest
0 голосов
/ 16 января 2019

Я получаю следующее тело ответа через гарантию в Java

{
"-1": {
    "totalExecutions": 0,
    "endDate": "",
    "description": "",
    "totalExecuted": 0,
    "started": "",
    "versionName": "Unscheduled",
    "expand": "executionSummaries",
    "projectKey": "test",
    "versionId": -1,
    "environment": "",
    "totalCycleExecutions": 0,
    "build": "",
    "ended": "",
    "name": "Ad hoc",
    "modifiedBy": "",
    "projectId": 99,
    "startDate": "",
    "executionSummaries": {
        "executionSummary": [

        ]
    }
},
"7718": {
    "totalExecutions": 1,
    "endDate": "",
    "description": "",
    "totalExecuted": 1,
    "started": "",
    "versionName": "Unscheduled",
    "expand": "executionSummaries",
    "projectKey": "test",
    "versionId": -1,
    "environment": "",
    "totalCycleExecutions": 1,
    "totalDefects": 0,
    "build": "",
    "createdBy": "xyz",
    "ended": "",
    "name": "xyz_SignIn",
    "totalFolders": 0,
    "modifiedBy": "xyz",
    "projectId": 99,
    "createdByDisplay": "xyz",
    "startDate": "",
    "executionSummaries": {
        "executionSummary": [

        ]
    }
},
"recordsCount": 2

}

для извлечения всех значений элемента имени я использую следующий код

String[]  test_cycle_values;
JsonPath jsonPathEvaluator = response.jsonPath();
test_cycle_values = jsonPathEvaluator.get("*.[*].name");

ожидаемый результат - Ad hoc, xyz_signIn

Однако я получаю исключение недопустимого аргумента для JsonPathEvauter

Как я могу получить значения имени из всего тела ответа? Версия JsonPathEvauter jar - 3.0.5

Если я использую test_cycle_values ​​= jsonPathEvaluator.get ("7718.name");

Я получаю значение xyz_sign In

1 Ответ

0 голосов
/ 16 января 2019
.*.name 

это должно сделать вашу работу. У меня работает.

...