web-dev-qa-db-fra.com

Accéder aux éléments d'un tableau anonyme via JsonPath dans RestAssured

J'ai un tableau anonyme en JSON renvoyé par un service comme:

[
  {"foo":1, "bar":2 , "baz":3 },
  {"foo":3, "bar":4 , "baz":5 }
]

Comment puis-je accéder aux éléments bar, par exemple dans

expect().body("$[*].bar", hasItems(2,4)) 

J'ai essayé quelques possibilités que j'ai trouvées ici et aussi sur la page JsonPath de Stefan Gössner, mais quoi que j'essaye, j'obtiens des exceptions. Mon problème semble provenir directement d'essayer d'accéder à cette liste d'éléments.

28
Heiko Rupp

Étant donné que vous avez:

[
  {"foo":1, "bar":2 , "baz":3 },
  {"foo":3, "bar":4 , "baz":5 }
]

Vous pouvez effectuer les opérations suivantes dans Rest Assured:

then().body("bar",hasItems(2,4)) 

ou

expect().body("bar",hasItems(2,4)) 

si vous utilisez l'ancienne API.

36
Johan

La réponse de Johan est correcte, juste dans un souci d'exhaustivité: une autre façon de vérifier les éléments `` barre '' avec tranquillité serait

expect().
    body("[0].bar", equalTo(2)).
    body("[1].bar", equalTo(4));
24
Matthias