javajsonjsonpathrest-assured-jsonpath

restassured jsonpath findAll not working as expected


I'm trying to implement a method on java rest assure that find a value querying a JSON file. For this, I use a findAll method for JSONPath from the library io.restassured.path.json.JsonPath in order to access the value needed.

for some unknown reason, it is getting all values from path instead of the one that I'm specifying

 System.out.println(restApi.getValueFromJson(filePath,"purchases.purchase.insuredItems.travelers.travelerPurchase.findAll{it.title = 'Frau'}"));



[{professionalRisk=Medium, firstName=Sh�ra, lastName=Y�ung, riskActivity=Recreational sports, dateOfBirth=1991-12-12, @id=2, title=Frau, individualTravelPrice={#text=20, @currency=EUR}, @role=INSURED}, {professionalRisk=Medium, firstName=Shashank, lastName=Tripathi, riskActivity=Recreational sports, dateOfBirth=1995-05-23, @id=3, title=Frau, individualTravelPrice={#text=100, @currency=EUR}, @role=INSURED}, {professionalRisk=Medium, firstName=J�hn, lastName=Y�nus, riskActivity=Recreational sports, dateOfBirth=2017-12-12, @id=4, title=Frau, individualTravelPrice={#text=258.15, @currency=EUR}, @role=INSURED}, {professionalRisk=Medium, firstName=S�m�el, lastName=Polo, riskActivity=Recreational sports, dateOfBirth=1940-05-10, @id=5, title=Frau, individualTravelPrice={#text=10072, @currency=EUR}, @role=INSURED}, {professionalRisk=Medium, firstName=Gli �ernch, lastName=Fedrick, riskActivity=Recreational sports, dateOfBirth=1930-12-12, @id=6, title=Frau, individualTravelPrice={#text=1000, @currency=EUR}, @role=INSURED}]

Instead of

[{professionalRisk=Medium, firstName=Sh�ra, lastName=Y�ung, riskActivity=Recreational sports, dateOfBirth=1991-12-12, @id=2, title=Frau, individualTravelPrice={#text=20, @currency=EUR}, @role=INSURED}]

Obviously, if I do

System.out.println(restApi.getValueFromJson(filePath,"purchases.purchase.insuredItems.travelers.travelerPurchase.findAll{it.title = 'Frau'}.dateOfBirth"));

It takes

[1991-12-12, 1995-05-23, 2017-12-12, 1940-05-10, 1930-12-12]

instead of

[1991-12-12]

What I'm doing wrong?


Solution

  • Found the problem.

    I compared with "=" instead of "=="