Collection (List, Map) কে Object এ কনভার্ট করা

JSON থেকে Java Object (Deserialization) - জ্যাকসন (Jackson) - Java Technologies

357

Jackson হল একটি শক্তিশালী JSON প্রসেসিং লাইব্রেরি যা Java Objects এবং JSON এর মধ্যে কনভার্সন পরিচালনা করতে ব্যবহৃত হয়। আপনি Collections (যেমন List, Map) কে Java Objects এ কনভার্ট করতে পারেন Jackson এর সাহায্যে। এখানে আমরা List এবং Map কিভাবে Java Objects এ কনভার্ট করতে পারি তা দেখাব।


1. List কে Object এ কনভার্ট করা

ধরা যাক আপনার একটি List আছে যা কিছু Person অবজেক্ট ধারণ করে, এবং আপনি এই List কে JSON এ কনভার্ট করতে চান এবং তারপর JSON থেকে Java Objects এ ফিরে আসতে চান।

A. Java Class তৈরি করা:

প্রথমে, আমরা একটি Person ক্লাস তৈরি করব যা আমাদের List এর উপাদান হিসেবে কাজ করবে।

public class Person {
    private String name;
    private int age;

    // Constructor, Getters, Setters
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }
}

B. List কে JSON এ কনভার্ট করা:

এখন আমরা একটি List তৈরি করব যা Person অবজেক্ট ধারণ করবে এবং তারপর Jackson ObjectMapper ব্যবহার করে এই List কে JSON এ কনভার্ট করব।

import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        try {
            // Create List of Person objects
            List<Person> personList = new ArrayList<>();
            personList.add(new Person("John", 25));
            personList.add(new Person("Jane", 30));

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

            // Convert List to JSON string
            String json = objectMapper.writeValueAsString(personList);

            // Print JSON string
            System.out.println(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Output:

[{"name":"John","age":25},{"name":"Jane","age":30}]

C. JSON থেকে List Object এ কনভার্ট করা:

এখন যদি আপনি JSON স্ট্রিং থেকে List অবজেক্টে কনভার্ট করতে চান, তাহলে এটি করা যাবে নিম্নলিখিতভাবে:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        try {
            // Sample JSON string
            String json = "[{\"name\":\"John\",\"age\":25},{\"name\":\"Jane\",\"age\":30}]";

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

            // Convert JSON string to List of Person objects
            List<Person> personList = objectMapper.readValue(json, new TypeReference<List<Person>>(){});

            // Print List objects
            for (Person person : personList) {
                System.out.println(person.getName() + " is " + person.getAge() + " years old.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Output:

John is 25 years old.
Jane is 30 years old.

2. Map কে Object এ কনভার্ট করা

Jackson ব্যবহার করে Map (যেমন HashMap) কে Java Object (যেমন Person) এ কনভার্ট করা সম্ভব।

A. Java Class তৈরি করা:

আমরা আগের মতো Person ক্লাসটি ব্যবহার করব।

B. Map কে JSON এ কনভার্ট করা:

এখন একটি Map তৈরি করব যা String এবং Object হিসেবে মান ধারণ করবে এবং তারপর আমরা এই Map কে JSON স্ট্রিং এ কনভার্ট করব।

import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        try {
            // Create Map with Person object
            Map<String, Person> personMap = new HashMap<>();
            personMap.put("person1", new Person("John", 25));
            personMap.put("person2", new Person("Jane", 30));

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

            // Convert Map to JSON string
            String json = objectMapper.writeValueAsString(personMap);

            // Print JSON string
            System.out.println(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Output:

{"person1":{"name":"John","age":25},"person2":{"name":"Jane","age":30}}

C. JSON থেকে Map Object এ কনভার্ট করা:

এখন JSON স্ট্রিং থেকে Map অবজেক্টে কনভার্ট করার জন্য নিচের কোড ব্যবহার করতে পারেন।

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        try {
            // Sample JSON string
            String json = "{\"person1\":{\"name\":\"John\",\"age\":25},\"person2\":{\"name\":\"Jane\",\"age\":30}}";

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

            // Convert JSON string to Map
            Map<String, Person> personMap = objectMapper.readValue(json, new TypeReference<Map<String, Person>>(){});

            // Print Map objects
            for (Map.Entry<String, Person> entry : personMap.entrySet()) {
                Person person = entry.getValue();
                System.out.println(entry.getKey() + ": " + person.getName() + " is " + person.getAge() + " years old.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Output:

person1: John is 25 years old.
person2: Jane is 30 years old.

Jackson ব্যবহার করে আপনি Collection (List, Map) কে Java Objects এ কনভার্ট করতে পারেন এবং vice versa। Jackson এর সাহায্যে ObjectMapper ব্যবহার করে আপনি:

  1. List এবং Map অবজেক্টগুলি JSON স্ট্রিং এ কনভার্ট করতে পারেন।
  2. JSON থেকে List এবং Map অবজেক্টে কনভার্ট করতে পারেন।

Jackson এর সাথে এই কনভার্সন প্রক্রিয়া খুবই সহজ এবং দ্রুত, এবং এটি Java Applications এ JSON ডেটার সাথে কাজ করার জন্য অন্যতম জনপ্রিয় টুল।

Content added By
Promotion

Are you sure to start over?

Loading...