【问题标题】:JSON body response find index for valueJSON 正文响应查找值的索引
【发布时间】:2020-09-21 20:21:13
【问题描述】:

鉴于此 JSON 响应:

[{"brukergruppeSperret":false,"virksomhetsnavn":"HELFO","brukerGruppe":"Brukerstøtte"},{"brukergruppeSperret":false,"virksomhetsnavn":"Klubbgaten Legesenter","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"Sjøsiden Legesenter","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"Athene legekontor Helsedirektoratet","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"Xeon Legekontor","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"Østmarka legekontor","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"Hultemyra shamansamling","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"AMIS Testsenter","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"GLØSHAUGEN LEGESENTER DA","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"Helse Møre og Romsdal HF","brukerGruppe":"Lege"},{"brukergruppeSperret":false,"virksomhetsnavn":"St. Olavs hospital HF","brukerGruppe":"Saksbehandler"},{"brukergruppeSperret":false,"virksomhetsnavn":"HELSEDIREKTORATET","brukerGruppe":"Saksbehandler"},{"brukergruppeSperret":false,"virksomhetsnavn":"Østmarka legekontor","brukerGruppe":"Saksbehandler"}]

我想获取 JSON 响应中的第一个索引,其值为“Lege”为“brukerGruppe”。 在上面的示例中,这对应于索引 6。

如何在 Gatling 的会话中进行检查以实现此功能? 我猜“find”这个函数可能有点像这样使用:

.check(jsonPath("$.brukerGruppe").find("Lege").indexvalue ??

谢谢

【问题讨论】:

    标签: arrays json scala indexing gatling


    【解决方案1】:

    JsonPath 支持条件,你可以这样找到:

    jsonPath("$.[6][?(@.brukerGruppe=='Lege')]"
    

    返回了:

    [
      {
        "brukergruppeSperret": false,
        "virksomhetsnavn": "Hultemyra shamansamling",
        "brukerGruppe": "Lege"
      }
    ]
    

    您还可以获得 brukerGruppe 等于 Lege

    的所有项目
    $.[?(@.brukerGruppe=='Lege')]
    

    【讨论】:

    • 我只需要第一次出现的索引,其中“brukergruppe”的值为“Lege”,我想将该位置保存在响应数组中(它可以变化)
    • $.[1][?(@.brukerGruppe=='Lege')]
    • 我想你误会了。如果 brukergruppe=lege 在响应体中的位置 3 怎么办?我不想在某个位置问,但如果它存在的话(不是每个响应都存在,即)。基本原理是如果它存在,则将 jsonbody 中的位置保存为 int,如果不存在则跳过它,无论它位于何处)
    • 试过 .check(jsonPath("$.[?(@.brukerGruppe=='Lege')]").saveAs("valgtBrukergruppe")) 但我得到 -- 错误 ---- -------------------------------------------------- -------------- > jsonPath($.[?(@.brukerGruppe=='Lege')]).find.exists 提取 1 (100,0%) 崩溃:输入结束预计
    • 这已通过 .check(jsonPath("$..[?(@.brukerGruppe=='Lege')]").saveAs("valgtBrukergruppe")) 解决,因为:@987654321 @
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多