请放心:从 JSON 中提取价值
Rest Assured: Extracting value from JSON
我正在尝试使用 Restassured usign 路径从 JSON 中提取值。
我想将它存储在字符串列表中,因为稍后我需要检查我在 csv 文件中的值是否存在于此列表中。
谁能帮我建个解压路径?
现在我在我的控制台上看到了这个。
**(它只返回十个,因为我更改了“limit”参数。)
[null, null, null, null, null, null, null, null, null, null]
到目前为止我的代码:
// https://svc-uat-cdw/cdw/counterparties.json?2021-05-25?limit=74000&count=false&sort=accountId
public static List<String> JSONcounterparties(String date ) {
baseURI = uri;
ArrayList<String> accounts =
given()
.auth().basic(getJiraUser(), getJiraPass())
.param("date", date)
.param("limit", "100")
.param("count", "false")
.param("sort", "accountId")
.when()
.get("/counterparties.json")
.then()
.extract().path("accountId");
return accounts;
}
下面你可以找到JSON结构,我只需要对象数组“identifiers”中的所有“accountId”。
{
"organisationId": {
"#value": "MHI"
},
"accountName": "TENARON CAP MGMT AC TCMDBSNY",
"identifiers": {
"accountId": "TCMDBSNY",
"customerId": "TENARNCMSG",
"blockAccountCode": "TENARNBDBL",
"identifier": [{
"accountId": "MHI",
"accountIdType": "REVNCNTR"
},
{
"accountId": "TCMDBSNY",
"accountIdType": "ACCOUNTID"
},
{
"accountId": "TENARNCMSG",
"accountIdType": "MHICUSTID"
},
{
"accountId": "TENARNBDBL",
"accountIdType": "BLOCKACCOUNT"
},
{
"accountId": "TCMDBSNY",
"accountIdType": "GLOBEOP"
},
{
"accountId": "NTHFS",
"accountIdType": "ALERTACRONYM"
},
{
"accountId": "TCMDBSNY",
"accountIdType": "ALERTACCESS"
}
]
},
"isBlocAccount": "N",
"accountStatus": "COMPLETE",
"products": {},
"etc": {},
"costCentre": "Rate Sales",
"clientLevel": "SUBAC",
"accountCreationDate": "2017-02-03T00:00:00.000Z",
"accountOpeningDate": "2017-02-03T00:00:00.000Z",
"ssi": {}
}
而不是这个
.extract().path("accountId");
试试这个
.extract().path("identifiers.identifier.accountId");
你可以用这个
.extract().jsonPath().getList("identifiers.identifier.accountId");
我正在尝试使用 Restassured usign 路径从 JSON 中提取值。 我想将它存储在字符串列表中,因为稍后我需要检查我在 csv 文件中的值是否存在于此列表中。
谁能帮我建个解压路径?
现在我在我的控制台上看到了这个。 **(它只返回十个,因为我更改了“limit”参数。)
[null, null, null, null, null, null, null, null, null, null]
到目前为止我的代码:
// https://svc-uat-cdw/cdw/counterparties.json?2021-05-25?limit=74000&count=false&sort=accountId
public static List<String> JSONcounterparties(String date ) {
baseURI = uri;
ArrayList<String> accounts =
given()
.auth().basic(getJiraUser(), getJiraPass())
.param("date", date)
.param("limit", "100")
.param("count", "false")
.param("sort", "accountId")
.when()
.get("/counterparties.json")
.then()
.extract().path("accountId");
return accounts;
}
下面你可以找到JSON结构,我只需要对象数组“identifiers”中的所有“accountId”。
{
"organisationId": {
"#value": "MHI"
},
"accountName": "TENARON CAP MGMT AC TCMDBSNY",
"identifiers": {
"accountId": "TCMDBSNY",
"customerId": "TENARNCMSG",
"blockAccountCode": "TENARNBDBL",
"identifier": [{
"accountId": "MHI",
"accountIdType": "REVNCNTR"
},
{
"accountId": "TCMDBSNY",
"accountIdType": "ACCOUNTID"
},
{
"accountId": "TENARNCMSG",
"accountIdType": "MHICUSTID"
},
{
"accountId": "TENARNBDBL",
"accountIdType": "BLOCKACCOUNT"
},
{
"accountId": "TCMDBSNY",
"accountIdType": "GLOBEOP"
},
{
"accountId": "NTHFS",
"accountIdType": "ALERTACRONYM"
},
{
"accountId": "TCMDBSNY",
"accountIdType": "ALERTACCESS"
}
]
},
"isBlocAccount": "N",
"accountStatus": "COMPLETE",
"products": {},
"etc": {},
"costCentre": "Rate Sales",
"clientLevel": "SUBAC",
"accountCreationDate": "2017-02-03T00:00:00.000Z",
"accountOpeningDate": "2017-02-03T00:00:00.000Z",
"ssi": {}
}
而不是这个
.extract().path("accountId");
试试这个
.extract().path("identifiers.identifier.accountId");
你可以用这个
.extract().jsonPath().getList("identifiers.identifier.accountId");