请放心:从 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");