You can use jackson-databind library for converting json string to object. I used maven package manager to add into my project.
I suggest the following solution to provide a well structure in your project. In my solution I used classes to keep json values. You can use Json To Pojo to generate objects from json string.
The output : 9
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
public class RestAssuredDemo {
public static void main(String[] args) {
String json = """
{
"outputData": {
"data": {
"leaveList": [
{
"leaveTypeID": 1,
"leaveBalance": 2
},
{
"leaveTypeID": 2,
"leaveBalance": 9
}
]
}
}
}
""";
ObjectMapper om = new ObjectMapper();
Root root = null;
try {
root = om.readValue(json, new TypeReference<Root>() {});
for (LeaveList leave: root.outputData.data.leaveList) {
if(leave.leaveTypeID == 2) {
System.out.println(leave.leaveBalance);
}
}
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
public static class LeaveList{
public int leaveTypeID;
public int leaveBalance;
}
public static class Data{
public List<LeaveList> leaveList;
}
public static class OutputData{
public Data data;
}
public static class Root{
public OutputData outputData;
}
}