Java Technologies Practical উদাহরণ: JSON Data Extraction এবং Transformation গাইড ও নোট

247

JSON (JavaScript Object Notation) হল একটি সাধারণ এবং মানব-পঠনযোগ্য ডেটা ফরম্যাট যা ওয়েব অ্যাপ্লিকেশনগুলোতে ডেটা এক্সচেঞ্জের জন্য ব্যবহৃত হয়। Java অ্যাপ্লিকেশনেও JSON ডেটাকে প্রক্রিয়াজাত এবং রূপান্তর (transformation) করা হয়। এখানে আমরা একটি Practical উদাহরণ দেখব যেখানে JSON ডেটা এক্সট্রাক্ট (extract) এবং ট্রান্সফর্ম (transform) করা হবে।

এই উদাহরণে Jackson লাইব্রেরি ব্যবহার করা হবে, যা JSON ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে JSON ফরম্যাটে রূপান্তর করতে সাহায্য করে।


১. JSON Data Extraction (JSON থেকে ডেটা এক্সট্রাকশন)

ধরা যাক আমাদের কাছে একটি JSON ডেটা আছে এবং আমাদের সেই ডেটা থেকে কিছু নির্দিষ্ট তথ্য (যেমন, নাম এবং বয়স) এক্সট্রাক্ট করতে হবে।

JSON ডেটা উদাহরণ (data.json)

{
    "employees": [
        {
            "name": "John",
            "age": 30,
            "department": "HR"
        },
        {
            "name": "Jane",
            "age": 25,
            "department": "Finance"
        },
        {
            "name": "Tom",
            "age": 35,
            "department": "IT"
        }
    ]
}

এই JSON ডেটাতে employees নামক একটি অ্যারে রয়েছে, যা বিভিন্ন কর্মচারীর নাম, বয়স এবং বিভাগের তথ্য ধারণ করছে।

Java ক্লাস তৈরি (POJO)

প্রথমে আমাদের Java ক্লাস তৈরি করতে হবে, যাতে JSON ডেটাকে Java অবজেক্টে রূপান্তর করা যায়।

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.List;

class Employee {
    private String name;
    private int age;
    private String department;

    // Getters and Setters
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }

    public String getDepartment() { return department; }
    public void setDepartment(String department) { this.department = department; }
}

class Employees {
    private List<Employee> employees;

    public List<Employee> getEmployees() {
        return employees;
    }

    public void setEmployees(List<Employee> employees) {
        this.employees = employees;
    }
}

এখানে, Employee ক্লাসে কর্মচারীর নাম, বয়স এবং বিভাগের জন্য প্রপার্টি রয়েছে, এবং Employees ক্লাসে কর্মচারীদের একটি List রয়েছে।

JSON এক্সট্রাকশন (Java থেকে JSON ডেটা এক্সট্রাক্ট করা)

এখন JSON ফাইলটি পার্স (parse) করে Java অবজেক্টে রূপান্তর করা হবে এবং তারপর সেই অবজেক্ট থেকে নাম এবং বয়স এক্সট্রাক্ট করা হবে।

public class JsonDataExtraction {
    public static void main(String[] args) throws IOException {
        // Create an ObjectMapper instance
        ObjectMapper objectMapper = new ObjectMapper();
        
        // Read the JSON file and convert it into the Employees object
        Employees employees = objectMapper.readValue(new File("data.json"), Employees.class);
        
        // Loop through the employee list and extract name and age
        for (Employee employee : employees.getEmployees()) {
            System.out.println("Name: " + employee.getName() + ", Age: " + employee.getAge());
        }
    }
}

Output:

Name: John, Age: 30
Name: Jane, Age: 25
Name: Tom, Age: 35

এখানে ObjectMapper ব্যবহার করে JSON ডেটাকে Employees অবজেক্টে রূপান্তর করা হচ্ছে এবং তারপর লুপের মাধ্যমে প্রতিটি কর্মচারীর নাম এবং বয়স এক্সট্রাক্ট করা হচ্ছে।


২. JSON Data Transformation (JSON ডেটা ট্রান্সফরমেশন)

এখন আমরা JSON ডেটা ট্রান্সফর্ম (transform) করার উদাহরণ দেখব। মানে, JSON ডেটা থেকে কিছু মান পরিবর্তন করে বা নতুন ডেটা তৈরি করে সেটি JSON ফরম্যাটে রূপান্তর করা।

Transformation - উদাহরণ

ধরা যাক, আমাদের একটি অ্যারে আছে কর্মচারীদের নাম এবং বয়সের সাথে, এবং আমরা তাদের বয়সের উপর ভিত্তি করে একটি নতুন JSON তৈরি করতে চাই যা নাম এবং বয়সের সাথে একটি নতুন status প্রপার্টি যোগ করবে (যেমন, "Adult" বা "Minor")।

public class JsonDataTransformation {
    public static void main(String[] args) throws IOException {
        // Sample JSON data
        String jsonData = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Jane\", \"age\":25}, {\"name\":\"Tom\", \"age\":35}]";
        
        // Create an ObjectMapper instance
        ObjectMapper objectMapper = new ObjectMapper();
        
        // Parse the JSON string into an array of Employee objects
        List<Employee> employeeList = objectMapper.readValue(jsonData, objectMapper.getTypeFactory().constructCollectionType(List.class, Employee.class));
        
        // Transform the data by adding a new 'status' field based on age
        for (Employee employee : employeeList) {
            String status = (employee.getAge() >= 18) ? "Adult" : "Minor";
            System.out.println("Name: " + employee.getName() + ", Age: " + employee.getAge() + ", Status: " + status);
        }
    }
}

Output:

Name: John, Age: 30, Status: Adult
Name: Jane, Age: 25, Status: Adult
Name: Tom, Age: 35, Status: Adult

এখানে:

  • JSON ডেটা স্ট্রিং থেকে Employee অবজেক্টের একটি লিস্ট তৈরি করা হচ্ছে।
  • তারপর, প্রতিটি কর্মচারীর বয়সের উপর ভিত্তি করে একটি নতুন status প্রপার্টি যোগ করা হচ্ছে।

JSON ট্রান্সফর্মেশন: নতুন JSON তৈরি করা

এখন আমরা সেই ট্রান্সফর্মড ডেটা আবার JSON ফরম্যাটে রূপান্তর (serialization) করব এবং আউটপুট দেখাব।

public class JsonDataTransformation {
    public static void main(String[] args) throws IOException {
        // Sample JSON data
        String jsonData = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Jane\", \"age\":25}, {\"name\":\"Tom\", \"age\":35}]";
        
        // Create an ObjectMapper instance
        ObjectMapper objectMapper = new ObjectMapper();
        
        // Parse the JSON string into an array of Employee objects
        List<Employee> employeeList = objectMapper.readValue(jsonData, objectMapper.getTypeFactory().constructCollectionType(List.class, Employee.class));
        
        // Transform the data by adding a new 'status' field based on age
        for (Employee employee : employeeList) {
            String status = (employee.getAge() >= 18) ? "Adult" : "Minor";
            employee.setDepartment(status); // Here, using department field for status
        }

        // Serialize the transformed data back to JSON
        String transformedJson = objectMapper.writeValueAsString(employeeList);
        System.out.println(transformedJson);
    }
}

Output:

[
    {"name":"John","age":30,"department":"Adult"},
    {"name":"Jane","age":25,"department":"Adult"},
    {"name":"Tom","age":35,"department":"Adult"}
]

এখানে আমরা department ফিল্ডটি নতুন status হিসেবে ব্যবহার করেছি এবং শেষ পর্যন্ত সেই ট্রান্সফর্মড ডেটাকে আবার JSON ফরম্যাটে রূপান্তর করেছি।


সারাংশ


JSON ডেটার extraction এবং transformation খুবই গুরুত্বপূর্ণ এবং শক্তিশালী কৌশল যা Java অ্যাপ্লিকেশনে বিভিন্ন ধরনের ডেটা প্রসেসিংয়ের জন্য ব্যবহৃত হয়। Jackson লাইব্রেরি ব্যবহার করে JSON ডেটা সহজেই Java অবজেক্টে রূপান্তর করা যায় এবং Java অবজেক্ট থেকে JSON তৈরি করা যায়। JSON থেকে ডেটা এক্সট্রাক্ট (extract) করার জন্য POJO (Plain Old Java Object) ব্যবহার করা হয় এবং transformation প্রক্রিয়ায় ডেটাতে নতুন ফিল্ড বা মান যোগ করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...