w3resource

Comprehensive Guide to JSON to POJO Conversion in Java


JSON to POJO Conversion

JSON to POJO conversion refers to the process of mapping JSON data into Plain Old Java Objects (POJOs). This is commonly done in Java applications to enable easy manipulation of structured data received from APIs or stored in files. POJOs represent the JSON structure in a class format, with fields corresponding to JSON keys and getter/setter methods for accessing them.


Syntax for JSON to POJO Conversion

When converting JSON to POJO, a typical approach involves:

    1. Defining a Java class (POJO) with fields matching the keys in the JSON.

    2. Using a library such as Jackson or Gson to parse the JSON string and map it to the POJO.


Example 1: Using Jackson Library

Code:

// Import necessary libraries
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;

// Define the POJO class
class Employee {
    private String name;
    private int age;
    private String department;

    // Getter and Setter for name
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    // Getter and Setter for age
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    // Getter and Setter for department
    public String getDepartment() {
        return department;
    }
    public void setDepartment(String department) {
        this.department = department;
    }
}

public class JsonToPojoExample {
    public static void main(String[] args) throws IOException {
        // Define a JSON string
        String json = "{\"name\": \"Sara\", \"age\": 25, \"department\": \"IT\"}";

        // Create ObjectMapper instance
        ObjectMapper mapper = new ObjectMapper();

        // Convert JSON string to POJO
        Employee employee = mapper.readValue(json, Employee.class);

        // Print the result
        System.out.println("Name: " + employee.getName());
        System.out.println("Age: " + employee.getAge());
        System.out.println("Department: " + employee.getDepartment());
    }
}

Output:

 
{'name': 'Sara', 'quote': 'She said: "Hello!"'}

Explanation:

    1. The Employee class defines fields (name, age, department) with corresponding getter and setter methods.

    2. The ObjectMapper class from the Jackson library is used to map the JSON string to the Employee object.

    3. The readValue() method converts the JSON string into a Java object of type Employee.

    4. Finally, the fields are printed using getter methods.


Example 2: Using Gson Library

Code:

// Import necessary libraries
import com.google.gson.Gson;

// Define the POJO class
class Product {
    private String name;
    private double price;

    // Getter and Setter for name
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    // Getter and Setter for price
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
}

public class GsonExample {
    public static void main(String[] args) {
        // Define a JSON string
        String json = "{\"name\": \"Laptop\", \"price\": 899.99}";

        // Create a Gson instance
        Gson gson = new Gson();

        // Convert JSON string to POJO
        Product product = gson.fromJson(json, Product.class);

        // Print the result
        System.out.println("Product Name: " + product.getName());
        System.out.println("Product Price: " + product.getPrice());
    }
}

Explanation:

    1. The Product class defines fields for name and price with getter and setter methods.

    2. The fromJson() method from the Gson class is used to parse the JSON string and create a Product object.

    3. The parsed data is displayed using getter methods.


Common Libraries for JSON to POJO Conversion

    1. Jackson: A popular library for JSON parsing and data binding in Java.

    • Provides ObjectMapper for easy conversion between JSON and POJOs.
    • Supports advanced features like annotations to control the mapping process.

    2. Gson: A lightweight library by Google for converting JSON to Java objects and vice versa.

    • Useful for simple and straightforward JSON parsing.
    • Offers fromJson() and toJson() methods for conversion.

Use Cases of JSON to POJO Conversion

    1. API Integration:

    When working with REST APIs, JSON responses can be directly converted to POJOs for easier data handling and processing.

    2. Data Serialization/Deserialization:

    Converting POJOs to JSON (serialization) and vice versa (deserialization) is crucial when saving data or communicating between services.

    3. Configuration Parsing:

    JSON configuration files can be read and converted to POJOs, enabling structured access to configuration data.

Practical Guides to JSON Snippets and Examples.



Follow us on Facebook and Twitter for latest update.