Skip to content

Make Selenium Easy

And Keep It That Way

  • Home
  • Share
  • Toggle search form

REST Assured Tutorial 46 – Fetch Value From JSON Array Using JsonNode – Jackson – Get() & Path() Methods

Posted on 03/21/2025 By admin

As a part of End to End REST Assured Tutorial, in this post, we will parse a JSON Array as JsonNode to fetch values of different types.

Creating POJO classes for parsing a JSON to fetch values may not be easy all the time especially when you have lengthy nested JSON and dynamic JSON. Instead, we can use the tree structure of a JSON so that we can navigate to any node via a path.

We have already covered parsing a simple JSON Object and a Nested JSON Object as JsonNode previously. You must refer those posts to understand parsing JSON array well.

Fetch Value From JSON Object Using JsonNode

Fetch Value From Nested JSON Object Using JsonNode

Since we are using Jackson API of Java for this example, make sure you have the latest dependency of Jackson Databind in your project classpath. I have used below Jackson dependency for this post:-

  com.fasterxml.jackson.core jackson-databind 2.11.1

You can use this site to view the tree representation of a JSON Array. A tree representation of the above example JSON array will look as below:-

A JSON array may be a collection of JSON objects or JSON arrays. Below is also a valid example of a JSON array.

[
  [
    {
      "firstName": "Amod",
      "lastName": "Mahajan",
      "age": 28,
      "isMarried": false,
      "salary": 23456.54
    },
    {
      "firstName": "Rahul",
      "lastName": "Arora",
      "age": 32,
      "isMarried": true,
      "salary": 33456.54
    }
  ],
  [
    {
      "firstName": "Amod",
      "lastName": "Mahajan",
      "age": 28,
      "isMarried": false,
      "salary": 23456.54
    },
    {
      "firstName": "Rahul",
      "lastName": "Arora",
      "age": 32,
      "isMarried": true,
      "salary": 33456.54
    }
  ]
]

We need to use class ObjectMapper provided by Jackson API. ObjectMapper class provides a method “readTree()” which is responsible to deserialize JSON content as tree expressed using a set of JsonNode instances.

We can get the value of a node using get() and path() methods of JsonNode class. We need to extract value with appropriate data types after using get() and path() methods.

We just need to use an index to fetch an element of an array which is the core concept of an array.

// Creating an instance of ObjectMapper class
ObjectMapper objectMapper = new ObjectMapper();
// Get tree representation of json
JsonNode jsonTree = objectMapper.readTree(jsonArray);
                
// Get first json object and storing 
JsonNode firstJsonObject = jsonTree.get(0);
// Get second json object and storing 
JsonNode secondJsonObject = jsonTree.get(1);

If you are not sure if parsed JSON tree is a JSON object or JSON tree then you can use instanceof as below:-

// To know if tree is a JSON object or JSON array
System.out.println("Is parsed JSOn tree a JSON Object?"+ Boolean.toString(jsonTree instanceof ObjectNode));
System.out.println("Is parsed JSOn tree a JSON Array?"+ Boolean.toString(jsonTree instanceof ArrayNode));

Remember that JsonNode is the parent class of both ObjectNode and ArrayNode.

Remaining all concepts are the same as we discussed in the posts mentioned under prerequisite headers. If you are sure of if JSON is an object or array we can directly cast and store in that type.

ArrayNode jsonTree = (ArrayNode) objectMapper.readTree(jsonArray);
package JsonNodeJackson;

import org.testng.annotations.Test;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class ParseJsonArrayToReadValues {
        
        @Test
        public void parseJsonArrayToReadValues() throws JsonMappingException, JsonProcessingException
        {
                String jsonArray = "[\r\n" + 
                                "  {\r\n" + 
                                "    \"firstName\": \"Amod\",\r\n" + 
                                "    \"lastName\": \"Mahajan\",\r\n" + 
                                "    \"age\": 28,\r\n" + 
                                "    \"isMarried\": false,\r\n" + 
                                "    \"salary\": 23456.54\r\n" + 
                                "  },\r\n" + 
                                "  {\r\n" + 
                                "    \"firstName\": \"Rahul\",\r\n" + 
                                "    \"lastName\": \"Arora\",\r\n" + 
                                "    \"age\": 32,\r\n" + 
                                "    \"isMarried\": true,\r\n" + 
                                "    \"salary\": 33456.54\r\n" + 
                                "  }\r\n" + 
                                "]";
                
                
                // Creating an instance of ObjectMapper class
                ObjectMapper objectMapper = new ObjectMapper();
                // Get tree representation of json
                JsonNode jsonTree = objectMapper.readTree(jsonArray);
                
                // To know if tree is a JSON object or JSON array
                System.out.println("Is parsed JSOn tree a JSON Object?"+ Boolean.toString(jsonTree instanceof ObjectNode));
                System.out.println("Is parsed JSOn tree a JSON Array?"+ Boolean.toString(jsonTree instanceof ArrayNode));
                
                // Get first json object and storing 
                JsonNode firstJsonObject = jsonTree.get(0);
                // Get second json object and storing 
                JsonNode secondJsonObject = jsonTree.get(1);
                
                // Get value of firstName as string
                String firstName = firstJsonObject.get("firstName").asText();
                String lastName = firstJsonObject.get("lastName").asText();
                // Get value of married as boolean
                int age = firstJsonObject.get("age").asInt();
                boolean married = firstJsonObject.get("isMarried").asBoolean();
                double salary = firstJsonObject.get("salary").asLong();
                
                System.out.println("FirstName is : "+firstName);
                System.out.println("LastName is  : "+lastName);
                System.out.println("Age is   : "+age);
                System.out.println("Maritial status is    : "+married);
                System.out.println("Salary is: "+salary);
                
                
                // Get value of firstName as string
                firstName = secondJsonObject.get("firstName").asText();
                lastName = secondJsonObject.get("lastName").asText();
                // Get value of married as boolean
                age = secondJsonObject.get("age").asInt();
                married = secondJsonObject.get("isMarried").asBoolean();
                salary = secondJsonObject.get("salary").asLong();
                
                System.out.println("FirstName is : "+firstName);
                System.out.println("LastName is  : "+lastName);
                System.out.println("Age is   : "+age);
                System.out.println("Maritial status is    : "+married);
                System.out.println("Salary is: "+salary);
                                
        }

}
Is parsed JSOn tree a JSON Object?false
Is parsed JSOn tree a JSON Array?true
FirstName is : Amod
LastName is  : Mahajan
Age is   : 28
Maritial status is    : false
Salary is: 23456.0
FirstName is : Rahul
LastName is  : Arora
Age is   : 32
Maritial status is    : true
Salary is: 33456.0

You can download/clone the above sample project from here.

If you have any doubt, feel free to comment below.If you like my posts, please like, comment, share and subscribe.#ThanksForReading

#HappyLearning

Uncategorized

Post navigation

Previous Post: Selenium interview expereince
Next Post: Why WebDriver Is An Interface not a class or an abstract class?

Related Posts

May 27, 2019 – Make Selenium Easy Uncategorized
Handling Non-Select or Any Types Of dropdown In Selenium Webdriver Uncategorized
Untitled Diagram (1) – Make Selenium Easy Uncategorized
ScrollInToView2 – Make Selenium Easy Uncategorized
REST Assured Tutorial 34 – Serialization – Java Object To JSON Object Using Gson API Uncategorized
image – Make Selenium Easy Uncategorized

Recent Posts

  • Getting Started with Selenium 4: What Is New and How to Upgrade from Selenium 3
  • Manual Testing
  • Baby Steps To Become Efficient Selenium-Java Automation Tester
  • Features of Selenium 4.0.0 Release – Java Binding
  • Part 1: Handling Drop-down Created Using SELECT Tag In Selenium

Recent Comments

No comments to show.

Archives

  • April 2026
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • April 2024
  • March 2024
  • February 2024
  • December 2023
  • October 2023
  • August 2023
  • November 2022
  • September 2022
  • August 2022
  • July 2022
  • May 2022
  • March 2022
  • October 2021
  • April 2021
  • March 2021
  • January 2021
  • December 2020
  • October 2020
  • September 2020
  • August 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • May 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • January 2018

Categories

  • Getting Started
  • Uncategorized

Copyright © 2026 Make Selenium Easy.

Powered by PressBook Masonry Dark