JSON Encoding (Java Object থেকে JSON এ রূপান্তর)

জেসন.সিম্পল (Json.Simple) - Java Technologies

413

JSON.simple লাইব্রেরি ব্যবহার করে আপনি Java Object থেকে JSON ফরম্যাটে ডেটা রূপান্তর করতে পারেন। এই প্রক্রিয়াটি JSON encoding বা serialization নামে পরিচিত। JSON encoding এর মাধ্যমে আপনি Java অবজেক্টগুলোকে JSON string এ রূপান্তর করতে পারেন, যা নেটওয়ার্কে পাঠানো বা স্টোর করা সহজ হয়।

এখানে আমরা দেখব কিভাবে Java Object থেকে JSON এ রূপান্তর করা যায় JSON.simple লাইব্রেরি ব্যবহার করে।


1. JSON Encoding: Java Object থেকে JSON এ রূপান্তর

JSON.simple লাইব্রেরি ব্যবহার করে Java object থেকে JSON এ রূপান্তর করার জন্য প্রথমে একটি JSONObject তৈরি করতে হয়। তারপর, Java object থেকে প্রাপ্ত ডেটাগুলিকে JSON key-value pair আকারে সেট করা হয়।

Step 1: JSON.simple Library ইনস্টল করা

যদি Maven ব্যবহার করেন, তবে আপনার pom.xml ফাইলে নিচের মতো dependency যুক্ত করতে হবে:

<dependencies>
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
    </dependency>
</dependencies>

যদি Maven ব্যবহার না করেন, তবে JSON.simple JAR ডাউনলোড করে lib ফোল্ডারে পেস্ট করতে হবে এবং Build Path-এ যুক্ত করতে হবে।


Step 2: Java Object to JSON Encoding Example

এখানে একটি উদাহরণ দেওয়া হলো যেখানে একটি সাধারণ Java Object (যেমন: Person class) JSON ফরম্যাটে রূপান্তর করা হবে।

import org.json.simple.JSONObject;

public class JsonEncodingExample {

    public static void main(String[] args) {
        // Create a new Java object (Person)
        Person person = new Person("John Doe", 30, "New York");

        // Create a new JSONObject to hold the JSON data
        JSONObject jsonObject = new JSONObject();

        // Convert Java object to JSON by setting values in JSONObject
        jsonObject.put("name", person.getName());
        jsonObject.put("age", person.getAge());
        jsonObject.put("city", person.getCity());

        // Print the JSON string
        System.out.println(jsonObject.toJSONString());
    }

    // Java class to be converted to JSON
    static class Person {
        private String name;
        private int age;
        private String city;

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

        // Getter methods
        public String getName() {
            return name;
        }

        public int getAge() {
            return age;
        }

        public String getCity() {
            return city;
        }
    }
}

Explanation:

  1. প্রথমে, Person ক্লাস তৈরি করা হয়েছে, যার মধ্যে name, age, এবং city নামক ফিল্ড রয়েছে।
  2. একটি Person অবজেক্ট তৈরি করা হয়েছে।
  3. তারপর, একটি JSONObject তৈরি করা হয়েছে যেখানে put() মেথড ব্যবহার করে Java object থেকে প্রাপ্ত ডেটা JSON key-value pairs হিসেবে সেট করা হয়েছে।
  4. শেষে, jsonObject.toJSONString() ব্যবহার করে JSON স্ট্রিং আউটপুট করা হয়েছে।

Output:

{"name":"John Doe","age":30,"city":"New York"}

এখানে, Java object (Person) থেকে JSON স্ট্রিং এ রূপান্তর করা হয়েছে।


2. Java Object to JSON Using a Java Library (e.g., Gson, Jackson)

যদি আপনি JSON.simple ছাড়াও অন্যান্য লাইব্রেরি যেমন Gson বা Jackson ব্যবহার করতে চান, তবে আপনি Java Object কে JSON এ রূপান্তরের জন্য সেগুলিও ব্যবহার করতে পারেন। তবে JSON.simple সহজ এবং কার্যকরী পদ্ধতিতে কাজ করে।


3. Converting Complex Java Objects to JSON

আপনি যদি complex Java objects, যেমন nested objects বা lists কে JSON এ রূপান্তর করতে চান, তবে এই কাজের জন্য JSON.simple তে কিছু অতিরিক্ত কৌশল ব্যবহার করতে হবে।

Example: Complex Java Object to JSON Encoding

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class ComplexJsonEncodingExample {

    public static void main(String[] args) {
        // Create a list of Person objects
        List<Person> people = new ArrayList<>();
        people.add(new Person("John Doe", 30, "New York"));
        people.add(new Person("Jane Smith", 25, "Los Angeles"));

        // Create a JSONObject to represent the data
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("company", "Tech Corp");

        // Create a JSONArray to hold the list of people
        JSONArray peopleArray = new JSONArray();
        for (Person person : people) {
            JSONObject personJson = new JSONObject();
            personJson.put("name", person.getName());
            personJson.put("age", person.getAge());
            personJson.put("city", person.getCity());
            peopleArray.add(personJson);
        }

        // Add the list of people to the main JSON object
        jsonObject.put("employees", peopleArray);

        // Print the JSON string
        System.out.println(jsonObject.toJSONString());
    }

    // Java class to represent the Person data
    static class Person {
        private String name;
        private int age;
        private String city;

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

        // Getter methods
        public String getName() {
            return name;
        }

        public int getAge() {
            return age;
        }

        public String getCity() {
            return city;
        }
    }
}

Explanation:

  • এখানে, একটি Person ক্লাসের দুটি অবজেক্ট List এ রাখা হয়েছে।
  • JSONArray ব্যবহার করে Person অবজেক্টগুলোর একটি তালিকা তৈরি করা হয়েছে।
  • JSONArray কে JSONObject এর মধ্যে সংযুক্ত করা হয়েছে।
  • অবশেষে, পুরো JSON অবজেক্টটি toJSONString() ব্যবহার করে JSON ফরম্যাটে রূপান্তরিত হয়েছে।

Output:

{
    "company": "Tech Corp",
    "employees": [
        {"name":"John Doe","age":30,"city":"New York"},
        {"name":"Jane Smith","age":25,"city":"Los Angeles"}
    ]
}

এখানে, JSONArray এবং JSONObject এর মাধ্যমে complex Java objects (nested objects and lists) কে JSON এ রূপান্তর করা হয়েছে।


  • JSON.simple লাইব্রেরি ব্যবহার করে আপনি সহজে Java objects কে JSON এ রূপান্তর করতে পারেন।
  • Key-Value pairs ব্যবহার করে ডেটা JSON স্ট্রাকচারে রূপান্তর করা হয়, যা serialization নামে পরিচিত।
  • JSONArray এবং JSONObject ব্যবহার করে আপনি nested objects এবং lists কে JSON ফরম্যাটে কাস্টমাইজ করে রূপান্তর করতে পারেন।
  • JSON.simple লাইব্রেরি lightweight এবং simple হওয়ায় এটি Java applications এ JSON পার্সিং এবং জেনারেশন জন্য একটি জনপ্রিয় বিকল্প।
Content added By

JSON.simple লাইব্রেরি ব্যবহার করে আপনি Java Object গুলিকে JSON ফরম্যাটে রূপান্তর করতে পারেন। এটি সাধারণত JSONObject এবং JSONArray ব্যবহার করে Java অবজেক্টের ডেটাকে JSON অবজেক্টে রূপান্তর করে। এই লাইব্রেরি দিয়ে আপনি একটি Java Object কে JSON স্ট্রিং-এ কনভার্ট করতে পারবেন, যা API-তে পাঠানোর জন্য বা ডেটাবেসে সেভ করার জন্য ব্যবহার করা যায়।

JSON.simple লাইব্রেরি সরাসরি Java Object কে JSON এ রূপান্তর করার জন্য একটি বিশেষ ফিচার সরবরাহ করে না। তবে, আপনি Java Reflection বা Custom Logic ব্যবহার করে Java Object কে JSON এ রূপান্তর করতে পারেন।

ধাপ ১: JSON.simple লাইব্রেরি ডিপেনডেন্সি যোগ করা

Maven প্রজেক্টে JSON.simple লাইব্রেরি ব্যবহার করতে হলে প্রথমে আপনি pom.xml-এ JSON.simple ডিপেনডেন্সি যোগ করতে হবে:

<dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1.1</version>
</dependency>

ধাপ ২: Java Object কে JSON এ রূপান্তর

এখানে আমরা একটি Java Object (যেমন Person ক্লাস) কে JSON Object-এ রূপান্তর করার উদাহরণ দেখব।

Java Class (Person.java):

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

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

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

Java Object থেকে JSON এ রূপান্তর:

import org.json.simple.JSONObject;

public class JavaToJsonExample {
    public static void main(String[] args) {
        // Create a new Person object
        Person person = new Person("John", 30);

        // Create a JSONObject to store the Java object's data
        JSONObject jsonObject = new JSONObject();

        // Add data from the Java object to the JSONObject
        jsonObject.put("name", person.getName());
        jsonObject.put("age", person.getAge());

        // Print the JSON object as a string
        System.out.println(jsonObject.toJSONString());
    }
}

Output:

{"name":"John","age":30}

এখানে:

  • Person ক্লাসের অবজেক্ট person তৈরি করা হয়েছে।
  • তারপর JSON.simple লাইব্রেরির JSONObject ব্যবহার করে Java Object থেকে ডেটা পেয়ে JSON অবজেক্ট তৈরি করা হয়েছে।
  • jsonObject.put() মেথড ব্যবহার করে Java Object থেকে ডেটা JSON অবজেক্টে যোগ করা হয়েছে।

ধাপ ৩: Java Object কে JSON এ রূপান্তরের জন্য Reflection ব্যবহার করা

যদি আপনার Java Object ক্লাসের ক্ষেত্রে multiple fields থাকে, তবে Reflection ব্যবহার করে আপনাকে প্রতিটি ফিল্ডকে JSON Object-এ রূপান্তর করতে হতে পারে।

import org.json.simple.JSONObject;
import java.lang.reflect.Field;

public class JavaToJsonWithReflection {
    public static void main(String[] args) {
        // Create a new Person object
        Person person = new Person("Alice", 25);

        // Create a JSONObject
        JSONObject jsonObject = new JSONObject();

        try {
            // Use reflection to get fields of the Person class
            Field[] fields = person.getClass().getDeclaredFields();
            for (Field field : fields) {
                field.setAccessible(true);  // Make private fields accessible
                jsonObject.put(field.getName(), field.get(person));  // Add field name and value to JSONObject
            }
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

        // Print the JSON object as a string
        System.out.println(jsonObject.toJSONString());
    }
}

Output:

{"name":"Alice","age":25}

এখানে:

  • Reflection ব্যবহার করে Person ক্লাসের সমস্ত ফিল্ড থেকে ডেটা পাওয়া হয়েছে এবং JSON Object-এ যোগ করা হয়েছে।
  • Field.setAccessible(true) ব্যবহার করা হয়েছে যাতে private ফিল্ডও অ্যাক্সেস করা যায়।

JSON.simple দিয়ে Complex Java Objects রূপান্তর

যদি আপনার Java Object complex হয়, যেমন একটি nested object বা List থাকে, তবে JSONObject বা JSONArray ব্যবহার করে nested objects বা arrays JSON-এ রূপান্তর করা যেতে পারে।

উদাহরণ: Nested Objects (Java Object রূপান্তর)

import org.json.simple.JSONObject;

class Address {
    private String street;
    private String city;

    public Address(String street, String city) {
        this.street = street;
        this.city = city;
    }

    public String getStreet() {
        return street;
    }

    public String getCity() {
        return city;
    }
}

public class JavaToJsonNestedExample {
    public static void main(String[] args) {
        Address address = new Address("123 Main St", "New York");

        // Create a JSONObject for the nested Address object
        JSONObject addressJson = new JSONObject();
        addressJson.put("street", address.getStreet());
        addressJson.put("city", address.getCity());

        // Create the main Person object and add the nested Address object
        JSONObject personJson = new JSONObject();
        personJson.put("name", "Alice");
        personJson.put("age", 30);
        personJson.put("address", addressJson);  // Nested Address object

        // Print the JSON object
        System.out.println(personJson.toJSONString());
    }
}

Output:

{"name":"Alice","age":30,"address":{"street":"123 Main St","city":"New York"}}

এখানে:

  • Address একটি nested object হিসেবে Person অবজেক্টের মধ্যে রাখা হয়েছে। এটি JSON.simple এর মাধ্যমে nested JSON আউটপুট হিসেবে তৈরি হয়েছে।

JSON.simple লাইব্রেরির সুবিধা

  1. সহজ এবং লাইটওয়েট: JSON.simple একটি খুব সহজ এবং লাইটওয়েট লাইব্রেরি, যা দ্রুত পার্সিং এবং JSON স্ট্রিং তৈরির জন্য ব্যবহার করা যেতে পারে।
  2. JSON Object এবং JSONArray এর সমর্থন: JSON.simple JSON Object এবং JSONArray এর সাপোর্ট দেয়, যেটি ডেটা ম্যানিপুলেশন এবং ট্রান্সফারের জন্য খুবই কার্যকরী।
  3. Java Object থেকে JSON রূপান্তর: Java Object থেকে JSON অবজেক্ট তৈরি করা সহজ। Reflection ব্যবহার করে complex Java Objects ও JSON-এ রূপান্তর করা সম্ভব।
  4. Minimal Dependencies: JSON.simple কোনো অতিরিক্ত ডিপেনডেন্সি ছাড়া কাজ করে, যা এর পারফরম্যান্স এবং সহজ ব্যবহারে সহায়ক।

JSON.simple একটি সহজ, হালকা এবং দ্রুত JSON লাইব্রেরি যা Java Object কে JSON এ রূপান্তর করার জন্য ব্যবহৃত হয়। এটি খুব কমপ্লেক্স না হলেও, সরল JSON স্ট্রাকচার এবং ছোট Java Object-এর জন্য আদর্শ। যদি আপনি একটি সহজ, দ্রুত, এবং কার্যকর JSON রূপান্তর পদ্ধতি চান তবে JSON.simple একটি ভাল বিকল্প।

Content added By

Json.Simple লাইব্রেরি Java এ JSON ডেটা তৈরি, পার্স এবং ম্যানিপুলেট করার জন্য একটি সহজ এবং হালকা লাইব্রেরি। JSON ডেটা তৈরি করার জন্য সাধারণত দুটি প্রধান উপাদান ব্যবহার করা হয়:

  1. JSONObject: JSON অবজেক্ট তৈরি করতে ব্যবহৃত হয়, যেখানে কী-মান পেয়ার থাকে।
  2. JSONArray: JSON অ্যারে তৈরি করতে ব্যবহৃত হয়, যা বিভিন্ন মানের একটি তালিকা ধারণ করে।

এখানে আমরা দেখব কীভাবে JSONObject এবং JSONArray ব্যবহার করে ডেটা encode (এখানে মানে JSON ফরম্যাটে রূপান্তর) করা যায়।


1. JSONObject দিয়ে ডেটা Encode করা

JSONObject একটি JSON অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়, যা কী-মান পেয়ার ধারণ করে। প্রতিটি কী একটি স্ট্রিং এবং তার মান হতে পারে অন্য কোন ডেটা টাইপ (যেমন স্ট্রিং, সংখ্যা, অ্যারে, অবজেক্ট ইত্যাদি)।

Example: JSONObject দিয়ে ডেটা Encode করা

import org.json.simple.JSONObject;

public class JsonSimpleExample {
    public static void main(String[] args) {
        // JSONObject তৈরি করা
        JSONObject jsonObject = new JSONObject();
        
        // কী-মান পেয়ার যোগ করা
        jsonObject.put("name", "John");
        jsonObject.put("age", 30);
        jsonObject.put("isStudent", false);

        // JSON Object কে String-এ রূপান্তর করা (Encode করা)
        String jsonString = jsonObject.toJSONString();

        // প্রিন্ট করা
        System.out.println(jsonString);
    }
}

আউটপুট:

{"name":"John","age":30,"isStudent":false}

এখানে, jsonObject.put() ব্যবহার করে JSON অবজেক্টে কী-মান পেয়ার যোগ করা হয়েছে। toJSONString() মেথড ব্যবহার করে JSON অবজেক্টকে স্ট্রিং ফরম্যাটে রূপান্তর করা হয়েছে (এটি encode করার সমতুল্য)।


2. JSONArray দিয়ে ডেটা Encode করা

JSONArray একটি তালিকা বা অ্যারে ধারণ করে, যেখানে বিভিন্ন মান থাকতে পারে। এটি সাধারণত একাধিক মান (যেমন স্ট্রিং, সংখ্যা, অন্যান্য JSON অবজেক্ট বা অ্যারে) ধারণ করার জন্য ব্যবহৃত হয়।

Example: JSONArray দিয়ে ডেটা Encode করা

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class JsonArrayExample {
    public static void main(String[] args) {
        // JSONArray তৈরি করা
        JSONArray jsonArray = new JSONArray();

        // JSONObject তৈরি করা এবং JSONArray তে যোগ করা
        JSONObject person1 = new JSONObject();
        person1.put("name", "John");
        person1.put("age", 30);
        jsonArray.add(person1);

        JSONObject person2 = new JSONObject();
        person2.put("name", "Jane");
        person2.put("age", 25);
        jsonArray.add(person2);

        // JSONArray কে String-এ রূপান্তর করা (Encode করা)
        String jsonString = jsonArray.toJSONString();

        // প্রিন্ট করা
        System.out.println(jsonString);
    }
}

আউটপুট:

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

এখানে, JSONArray তে দুটি JSONObject যুক্ত করা হয়েছে। প্রতিটি JSONObject একটি ব্যক্তির তথ্য ধারণ করছে। তারপর, toJSONString() ব্যবহার করে JSONArray কে JSON স্ট্রিং হিসেবে রূপান্তর করা হয়েছে।


3. JSONObject এবং JSONArray একত্রে ব্যবহার

আপনি JSONArray এর মধ্যে JSONObject ব্যবহার করে একটি জটিল ডেটা স্ট্রাকচার তৈরি করতে পারেন।

Example: JSONObject এবং JSONArray একত্রে ব্যবহার

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class ComplexJsonExample {
    public static void main(String[] args) {
        // JSONArray তৈরি করা
        JSONArray jsonArray = new JSONArray();

        // JSON Objects তৈরি করা এবং JSONArray তে যোগ করা
        JSONObject person1 = new JSONObject();
        person1.put("name", "John");
        person1.put("age", 30);
        
        JSONObject person2 = new JSONObject();
        person2.put("name", "Jane");
        person2.put("age", 25);

        jsonArray.add(person1);
        jsonArray.add(person2);

        // Main JSONObject তৈরি করা
        JSONObject mainObject = new JSONObject();
        mainObject.put("people", jsonArray);  // JSONArray কে main JSONObject তে যোগ করা

        // JSON Object কে String-এ রূপান্তর করা (Encode করা)
        String jsonString = mainObject.toJSONString();

        // প্রিন্ট করা
        System.out.println(jsonString);
    }
}

আউটপুট:

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

এখানে, প্রথমে দুটি JSONObject তৈরি করা হয়েছে, প্রতিটি ব্যক্তির তথ্য ধারণ করে। তারপর, দুটি JSONObject একটি JSONArray তে যোগ করা হয়েছে, এবং সেই JSONArray-টি একটি মূল JSONObject এর মধ্যে রাখা হয়েছে। শেষে, পুরো স্ট্রাকচারটি JSON স্ট্রিংয়ে রূপান্তর করা হয়েছে।


4. JSON Encode এর ব্যবহার

JSON-এ ডেটা encode করার মাধ্যমে আপনি ডেটাকে একটি স্ট্যান্ডার্ড ফরম্যাটে রূপান্তর করতে পারেন, যা সহজে সঞ্চালিত এবং প্রক্রিয়া করা যায়। এর ফলে:

  • ওয়েব APIs-এ ডেটা বিনিময়ের সময় JSON সাধারণত ব্যবহার করা হয়।
  • Configuration Files এবং Data Serialization-এ JSON ডেটা স্টোরেজ ফরম্যাট হিসেবে ব্যবহৃত হয়।
  • Databases এবং NoSQL ডেটাবেসে JSON ফরম্যাটে ডেটা স্টোর করা হয়।

  1. JSONObject এবং JSONArray Json.Simple লাইব্রেরি ব্যবহার করে JSON ডেটা encode (স্ট্রিং ফরম্যাটে রূপান্তর) করা সম্ভব।
  2. JSONObject একটি কী-মান পেয়ার ধারণ করে, আর JSONArray একাধিক মান ধারণ করে।
  3. আপনি JSON অবজেক্টের মধ্যে অ্যারে বা অন্য JSON অবজেক্ট ব্যবহার করে জটিল ডেটা স্ট্রাকচার তৈরি করতে পারেন।
  4. toJSONString() মেথডটি JSON অবজেক্ট বা অ্যারে কে স্ট্রিং ফরম্যাটে রূপান্তর করে, যা পাঠযোগ্য এবং ব্যবহারের উপযোগী।

Json.Simple লাইব্রেরি খুবই হালকা এবং সহজে JSON ডেটা পার্স এবং ম্যানিপুলেট করার জন্য একটি কার্যকরী টুল।

Content added By

JSON (JavaScript Object Notation) একটি কমপ্যাক্ট এবং পাঠযোগ্য ডেটা বিনিময় ফরম্যাট, যা Java সহ বিভিন্ন প্রোগ্রামিং ভাষায় ব্যবহৃত হয়। JSONObject এবং JSONArray ক্লাস ব্যবহার করে আপনি Java-তে complex objects (যেমন, nested objects বা nested arrays) JSON ফরম্যাটে এনকোড করতে পারেন। এই পদ্ধতিতে আপনি সাধারণভাবে Java objects বা collections কে JSON ফরম্যাটে রূপান্তর করতে পারবেন।

Json.Simple লাইব্রেরি ব্যবহার করে আপনি সহজেই complex objects যেমন nested objects, অ্যারে বা অন্যান্য জটিল ডেটা কাঠামো JSON ফরম্যাটে এনকোড করতে পারেন।


1. JSONObject এবং JSONArray Overview

  • JSONObject: এটি JSON Object তৈরি করতে ব্যবহৃত হয়, যা কী-মান (key-value) পেয়ার ধারণ করে।
  • JSONArray: এটি JSON Array তৈরি করতে ব্যবহৃত হয়, যা একাধিক মান ধারণ করতে পারে (যেমন স্ট্রিং, সংখ্যা, অবজেক্ট ইত্যাদি)।

2. Complex Object Encode করার কৌশল

এখানে Json.Simple লাইব্রেরি ব্যবহার করে Complex Object (যেমন, nested objects এবং arrays) এনকোড করার কৌশল দেখানো হচ্ছে।

Complex Object Encode করার উদাহরণ:

ধরা যাক, আপনি একটি person অবজেক্ট তৈরি করতে চান, যেখানে address (একটি nested object) এবং phoneNumbers (একটি JSONArray) রয়েছে।

import org.json.simple.JSONObject;
import org.json.simple.JSONArray;

public class ComplexObjectEncodeExample {
    public static void main(String[] args) {
        // JSON Object for address (nested object)
        JSONObject address = new JSONObject();
        address.put("street", "123 Main St");
        address.put("city", "New York");
        address.put("zip", "10001");

        // JSON Array for phone numbers
        JSONArray phoneNumbers = new JSONArray();
        phoneNumbers.add("123-456-7890");
        phoneNumbers.add("987-654-3210");

        // JSON Object for person (outer object)
        JSONObject person = new JSONObject();
        person.put("name", "John Doe");
        person.put("age", 30);
        person.put("isStudent", false);
        person.put("address", address);  // Nested JSON object
        person.put("phoneNumbers", phoneNumbers);  // JSON Array

        // JSON Object (Complex Object) Print out
        System.out.println(person.toJSONString());
    }
}

আউটপুট:

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false,
  "address": {
    "street": "123 Main St",
    "city": "New York",
    "zip": "10001"
  },
  "phoneNumbers": [
    "123-456-7890",
    "987-654-3210"
  ]
}

ব্যাখ্যা:

  1. Nested JSON Object:
    • এখানে address একটি nested JSONObject যা পণ্যের ঠিকানা ধারণ করে (যেমন স্ট্রিট, সিটি এবং পিন কোড)।
  2. JSONArray:
    • phoneNumbers একটি JSONArray যা একাধিক ফোন নম্বর ধারণ করে। JSONArray এর মধ্যে আপনি String, Integer, বা JSONObject ব্যবহার করতে পারেন।
  3. Main JSON Object:
    • person মূল JSONObject যা নাম, বয়স, স্টুডেন্ট স্ট্যাটাস, অ্যাড্রেস (nested object), এবং ফোন নম্বর (array) ধারণ করে।

3. Complex Object Encode করার জন্য আরও উদাহরণ

Nested JSON Arrays with Objects:

ধরা যাক, আপনি একটি company অবজেক্ট তৈরি করতে চান যেখানে employees একটি JSONArray (অন্য JSONObjects এর একটি অ্যারে) থাকবে।

import org.json.simple.JSONObject;
import org.json.simple.JSONArray;

public class ComplexArrayObjectExample {
    public static void main(String[] args) {
        // Employee 1 JSON Object
        JSONObject employee1 = new JSONObject();
        employee1.put("name", "Alice");
        employee1.put("role", "Developer");

        // Employee 2 JSON Object
        JSONObject employee2 = new JSONObject();
        employee2.put("name", "Bob");
        employee2.put("role", "Manager");

        // Employee Array (JSONArray)
        JSONArray employees = new JSONArray();
        employees.add(employee1);
        employees.add(employee2);

        // Company JSON Object
        JSONObject company = new JSONObject();
        company.put("companyName", "Tech Innovations");
        company.put("employees", employees);

        // Print out the JSON Object (Complex Object with Arrays and Objects)
        System.out.println(company.toJSONString());
    }
}

আউটপুট:

{
  "companyName": "Tech Innovations",
  "employees": [
    {
      "name": "Alice",
      "role": "Developer"
    },
    {
      "name": "Bob",
      "role": "Manager"
    }
  ]
}

এখানে employees একটি JSONArray যার মধ্যে দুটি JSON Objects রয়েছে, প্রতিটি কর্মী সম্পর্কে তথ্য ধারণ করে।


4. JSON Object এবং JSONArray তে আরও কাস্টম ডেটা যুক্ত করা

আপনি JSON অবজেক্টের ভিতরে আরও কাস্টম ডেটা যুক্ত করতে পারেন যেমন Boolean, Integer, Double, Date ইত্যাদি।

import org.json.simple.JSONObject;
import java.util.Date;

public class CustomDataExample {
    public static void main(String[] args) {
        JSONObject person = new JSONObject();
        person.put("name", "John Doe");
        person.put("age", 30);
        person.put("isStudent", false);
        person.put("joinDate", new Date()); // Adding current date

        // Print the JSON Object with custom data
        System.out.println(person.toJSONString());
    }
}

এখানে, joinDate হিসাবে current Date JSON অবজেক্টে যোগ করা হয়েছে।

আউটপুট:

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false,
  "joinDate": "Thu Dec 21 12:34:56 GMT 2024"
}

5. JSON Object এবং JSONArray থেকে ডেটা রিট্রিভ করা

আপনি get() মেথড ব্যবহার করে JSON অবজেক্ট থেকে ডেটা বের করতে পারেন।

import org.json.simple.JSONObject;

public class RetrieveDataExample {
    public static void main(String[] args) {
        // JSON Object তৈরি করা
        JSONObject person = new JSONObject();
        person.put("name", "John");
        person.put("age", 30);

        // JSON Object থেকে ডেটা বের করা
        String name = (String) person.get("name");
        int age = (int) person.get("age");

        // ডেটা প্রিন্ট করা
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }
}

আউটপুট:

Name: John
Age: 30

  • JSONObject এবং JSONArray এর মাধ্যমে আপনি complex objects তৈরি এবং এনকোড করতে পারেন JSON ফরম্যাটে।
  • JSON অবজেক্টে nested objects এবং arrays অন্তর্ভুক্ত করতে পারেন।
  • Json.Simple লাইব্রেরি ব্যবহার করে আপনি সহজেই Java-এ JSON ডেটা তৈরি, প্যার্স এবং ম্যানিপুলেট করতে পারবেন।
  • JSON ডেটা সংগ্রহের জন্য key-value পেয়ার এবং arrays খুবই কার্যকরী এবং এটি বিভিন্ন ওয়েব সার্ভিস ও অ্যাপ্লিকেশনগুলিতে ডেটা বিনিময়ের জন্য ব্যবহৃত হয়।
Content added By

JSON Encoding হল প্রক্রিয়া যা Java Objects বা Java data types কে JSON ফরম্যাটে রূপান্তরিত করার জন্য ব্যবহৃত হয়। JSON.simple লাইব্রেরি ব্যবহারে এটি সহজে করা যেতে পারে। এই প্রক্রিয়ায় Java অ্যাপ্লিকেশনের ডেটা একে অপরের মধ্যে JSON স্ট্রিং বা JSON ডেটা স্ট্রাকচারে রূপান্তরিত হয়, যা পরে API বা অন্যান্য সিস্টেমে প্রেরণ করা যায়।

এখানে, JSON Encoding সম্পর্কে আলোচনা করা হবে এবং উদাহরণসহ দেখানো হবে কিভাবে JSON.simple লাইব্রেরি ব্যবহার করে Java Object থেকে JSON স্ট্রিং তৈরি করা যায়।


JSON Encoding: JSON.simple লাইব্রেরি ব্যবহার করে

JSON.simple লাইব্রেরি ব্যবহার করে JSON Encoding করার জন্য মূলত JSONObject ক্লাসটি ব্যবহার করা হয়। এর মাধ্যমে Java Objects বা অন্যান্য ডেটা টেমপ্লেটকে JSON ফরম্যাটে রূপান্তরিত করা হয়।

Steps for JSON Encoding:

  1. Java Object তৈরি করা: যেকোনো Java Object তৈরি করতে হবে যেটি JSON ফরম্যাটে রূপান্তরিত হবে।
  2. JSONObject ব্যবহার করা: Java Object এর ডেটা JSON key-value pair হিসেবে সংরক্ষণ করতে JSONObject ব্যবহার করতে হবে।
  3. JSON Encoding: put() মেথড দিয়ে key-value পেয়ার যোগ করা এবং toJSONString() মেথড ব্যবহার করে JSON স্ট্রিং পাওয়া যাবে।

JSON Encoding উদাহরণ

Step 1: Simple Java Object to JSON Encoding Example

ধরা যাক, আমাদের একটি Person অবজেক্ট আছে এবং আমরা এটি JSON ফরম্যাটে রূপান্তর করতে চাই।

import org.json.simple.JSONObject;

public class JsonEncodingExample {
    public static void main(String[] args) {
        // Step 1: Create a Java object
        JSONObject person = new JSONObject();

        // Step 2: Put key-value pairs into the JSON object
        person.put("name", "John Doe");
        person.put("age", 30);
        person.put("city", "New York");

        // Step 3: Encode Java object into JSON string
        String jsonString = person.toJSONString();

        // Output the JSON string
        System.out.println(jsonString);
    }
}

ব্যাখ্যা:

  • এখানে, JSONObject তৈরি করা হয়েছে এবং put() মেথড দিয়ে তিনটি key-value পেয়ার (যেমন: name, age, এবং city) JSON অবজেক্টে যোগ করা হয়েছে।
  • toJSONString() মেথড ব্যবহার করে Java Object থেকে JSON স্ট্রিং তৈরি করা হয়েছে।

Output:

{"name":"John Doe","age":30,"city":"New York"}

Step 2: JSON Encoding with Nested Objects Example

ধরা যাক, আমাদের একটি Employee অবজেক্ট আছে যার মধ্যে address (অন্য একটি JSON Object) অন্তর্ভুক্ত রয়েছে। আমরা এই nested JSON Object এর ডেটা JSON ফরম্যাটে রূপান্তর করতে চাই।

import org.json.simple.JSONObject;

public class JsonEncodingNestedExample {
    public static void main(String[] args) {
        // Create the address JSON object (nested object)
        JSONObject address = new JSONObject();
        address.put("street", "123 Main St");
        address.put("city", "New York");
        address.put("zip", "10001");

        // Create the employee JSON object
        JSONObject employee = new JSONObject();
        employee.put("name", "John Doe");
        employee.put("age", 30);
        employee.put("address", address);  // Add the nested address object

        // Encode Java object into JSON string
        String jsonString = employee.toJSONString();

        // Output the JSON string
        System.out.println(jsonString);
    }
}

ব্যাখ্যা:

  • এখানে, একটি address JSON Object তৈরি করা হয়েছে যা street, city, এবং zip এর key-value পেয়ার ধারণ করছে।
  • এই address Object-টি employee JSON Object-এ অন্তর্ভুক্ত করা হয়েছে।

Output:

{"name":"John Doe","age":30,"address":{"street":"123 Main St","city":"New York","zip":"10001"}}

এখানে address JSON Object employee JSON Object-এর অংশ হিসেবে যুক্ত হয়েছে এবং এটি একটি nested JSON object তৈরি করেছে।


Step 3: JSON Encoding with Arrays Example

ধরা যাক, আমাদের কাছে Product নামক একটি JSON Object আছে এবং এর মধ্যে tags নামে একটি JSON Array রয়েছে। এই tags Array-তে বিভিন্ন পণ্যের ট্যাগগুলো রাখা হবে।

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class JsonEncodingArrayExample {
    public static void main(String[] args) {
        // Create a JSON array to hold tags
        JSONArray tags = new JSONArray();
        tags.add("electronics");
        tags.add("gadget");
        tags.add("new");

        // Create the product JSON object
        JSONObject product = new JSONObject();
        product.put("name", "Smartphone");
        product.put("price", 699.99);
        product.put("tags", tags);  // Add the JSON array

        // Encode Java object into JSON string
        String jsonString = product.toJSONString();

        // Output the JSON string
        System.out.println(jsonString);
    }
}

ব্যাখ্যা:

  • একটি tags নামক JSON Array তৈরি করা হয়েছে যা বিভিন্ন স্ট্রিং ট্যাগ ধারণ করে।
  • এই tags array-টি product JSON Object-এর অংশ হিসেবে যুক্ত করা হয়েছে।

Output:

{"name":"Smartphone","price":699.99,"tags":["electronics","gadget","new"]}

এখানে tags একটি JSON Array হিসেবে product JSON Object-এ যুক্ত করা হয়েছে, যা Smartphone পণ্যের বিভিন্ন ট্যাগ ধারণ করছে।


  • JSON Encoding হল JSON ডেটা ফরম্যাটে Java Objects বা Java data types রূপান্তরিত করার প্রক্রিয়া।
  • JSON.simple লাইব্রেরি ব্যবহার করে Java Object কে সহজেই JSON ফরম্যাটে রূপান্তর করা যায়।
  • JSONObject এবং JSONArray ব্যবহার করে আপনি Java Object বা Array কে JSON String-এ কনভার্ট করতে পারেন, যা বিভিন্ন অ্যাপ্লিকেশন বা API এর মাধ্যমে ডেটা এক্সচেঞ্জে ব্যবহৃত হয়।
Content added By
Promotion

Are you sure to start over?

Loading...