当前位置: 首页 > 知识库问答 >
问题:

放心:从JSON中提取价值

赏育
2023-03-14

我试图从JSON中提取值,并将其存储在String List中,因为稍后我需要检查我在csv文件中的值是否存在于此List中。

任何人都可以帮我建立一个路径来提取它吗?

现在我在我的控制台上得到了这个。**(它只返回了十个,因为我更改了“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结构,我只需要对象“标识符”数组中的所有“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": {}
}

共有2个答案

贺轶
2023-03-14

取而代之的是

.extract().path("accountId");

试试这个

.extract().path("identifiers.identifier.accountId");
姜羽
2023-03-14

你可以用这个

.extract().jsonPath().getList("identifiers.identifier.accountId");
 类似资料:
  • 我得到的回应是这样的: 我有一个json回复: 我可以用放心的方法提取字符串吗?

  • 我正在收到以下结构的响应: ] 每当我想提取JSON属性时,例如描述,最终的对象不是我所期望的。它创建具有ArrayString的列表。 如何将值从此JSON对象获取到包含值的简单列表?谢谢

  • 我正在尝试使用jsonPath从JSON数组中提取值。 JSON响应示例: 目前的测试如下: 然而,我一直在处理我的错误代码。我只想知道它的价值。

  • 问题内容: 我以这种方式得到回应: 我在responseBody中有一个json: 是否可以仅使用此值= 39将其提取为字符串? 问题答案: 我找到了答案:) 使用JsonPath或XmlPath(如果您有XML)从响应主体获取数据。 就我而言:

  • 问题内容: 我从如下服务器获取响应字符串 我想获取名字的值。我怎样才能做到这一点?提前致谢。 问题答案: 看到此代码是我在应用程序中使用的代码 我像这样找回

  • 我有一个列表作为响应返回。我需要从使用product.name和tariffplan.name的列表中获得一个项目。 我使用Java8。以下是我的方法。我拿到了卡。类元素的列表。然后,我需要从列表中获得具有指定“product.name”和“tariffplan.name”的单个项目。 是否可以用Restastured来做这件事?也许像我的例子一样使用。param方法?但是在我的示例中。param