0

I am trying to fetch data from JSON array of response using jayway JSON path in selenium java. Able to fetch string values, but getting error for integer and other values. Can anyone please help me on this.

ex Json:

[
   {
      "id":23961,
      "isCardExpired":false,
      "token":"455484667",
      "futureSave":true,
      "cardHolderName":"TestCardholder",
      "cardTypeName":"VISA",
      "cardFriendlyName":"TestCardFriendly",
      "expiryMonth":1,
      "expiryYear":2026,
      "defaultCard":false,
      "referenceNumber":null,
      "cardType":"001"
   },
   {
      "id":23935,
      "isCardExpired":false,
      "token":"0187093344741111",
      "futureSave":true,
      "cardHolderName":"ravi archer",
      "cardTypeName":"VISA",
      "cardFriendlyName":"TestCardUS",
      "expiryMonth":6,
      "expiryYear":2024,
      "defaultCard":false,
      "referenceNumber":null,
      "cardType":"001"
   }
]

Code i tried using import com.jayway.jsonpath.JsonPath;

String id = jsonObj.getActualValueFromJSONResponseFromJayway("$.[0]['id']");
    public synchronized String getActualValueFromJSONResponseFromJayway(String xpathvalue) {
        return JsonPath.read(objResponse.asString(), xpathvalue);
    }

but after executing i am getting below error.

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

Waiting for any suggesstion

Thanks Nihar

  • Change the variable id to Integer, or use .toString() or append empty string before assigning to a string reference. String id = jsonObj.getActualValueFromJSONResponseFromJayway("$.[0]['id']").toString(); or String id = ""+jsonObj.getActualValueFromJSONResponseFromJayway("$.[0]['id']"); – Tharun Sep 30 '22 at 09:27

0 Answers0