HenlenLee
HenlenLee

Reputation: 445

Rest assured - How to validate JSON response field with the same name

I have the sample JSON response

     "userinfo": [
            {
                "userName": "name1",
                "registered": false
            },
            {
                "userName": "name2",
                "registered": true
            }
          ]

How can I verify when userName = name1 then registered = false When userName = name2 then registered = true

Tried something like this but it does not work.

.body("$.findAll{it.userinfo.userName = name1"}.registered", equalTo(false));

Did I miss something or do something wrong?

Upvotes: 2

Views: 1355

Answers (1)

Wilfred Clement
Wilfred Clement

Reputation: 2774

Here's something that can help you out,

    String json = "{\r\n" + "   \"userinfo\": [{\r\n" + "           \"userName\": \"name1\",\r\n"
            + "         \"registered\": false\r\n" + "      },\r\n" + "     {\r\n"
            + "         \"userName\": \"name2\",\r\n" + "           \"registered\": true\r\n" + "       }\r\n"
            + " ]\r\n" + "}";

    JsonPath js = new JsonPath(json);
    String emp1Name = js.get("userinfo.find {it.userName == 'name2'}.registered").toString();
    System.out.println(emp1Name);

Upvotes: 1

Related Questions