উদাহরণ সহ Custom Serializer এবং Deserializer

JSON Object এর জন্য Custom Serializer এবং Deserializer - অর্গ.জেসন (Org.Json) - Java Technologies

242

Custom Serializer এবং Custom Deserializer JSON ডেটার কাস্টম প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। যখন আপনি org.json লাইব্রেরি ব্যবহার করেন, তখন আপনি নির্দিষ্ট অবজেক্টগুলি কাস্টম ভাবে JSON স্ট্রিং বা JSON অবজেক্টে রূপান্তর করতে পারেন। এটি বিশেষভাবে দরকারি হয় যখন আপনার অবজেক্টগুলির কাঠামো ডিফল্ট JSON কনভার্সন থেকে ভিন্ন বা জটিল হয়।

এখানে আমরা দেখব কীভাবে Custom Serializer এবং Custom Deserializer তৈরি করা যায়।


Custom Serializer

Custom Serializer ব্যবহার করে আপনি একটি Java অবজেক্টকে কাস্টম JSON ফরম্যাটে কনভার্ট করতে পারেন। এটি org.json.JSONObject ব্যবহার করে JSON অবজেক্টে কাস্টম ফিল্ডের মান সেট করতে সহায়তা করে।

উদাহরণ: Custom Serializer তৈরি করা

ধরা যাক, আমাদের একটি Person ক্লাস আছে যার মধ্যে name এবং birthDate রয়েছে। কিন্তু আমরা birthDate ফিল্ডটি কাস্টম ফরম্যাটে JSON এ রাখতে চাই।

import org.json.JSONObject;
import java.text.SimpleDateFormat;
import java.util.Date;

class Person {
    String name;
    Date birthDate;

    public Person(String name, Date birthDate) {
        this.name = name;
        this.birthDate = birthDate;
    }

    // Custom Serializer Method
    public JSONObject toJson() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", this.name);

        // Custom Date Format
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
        jsonObject.put("birthDate", dateFormat.format(this.birthDate));

        return jsonObject;
    }
}

public class CustomSerializerExample {
    public static void main(String[] args) {
        // Person অবজেক্ট তৈরি
        Person person = new Person("John Doe", new Date());

        // Custom Serializer ব্যবহার করে JSON তৈরি করা
        JSONObject json = person.toJson();
        System.out.println("Serialized JSON: " + json.toString());
    }
}

কোডের ব্যাখ্যা

  • toJson(): এখানে আমরা Person ক্লাসের জন্য একটি কাস্টম toJson() মেথড তৈরি করেছি, যা Person অবজেক্টকে JSON ফরম্যাটে কনভার্ট করে। birthDate ফিল্ডটি আমরা কাস্টম ডেটা ফরম্যাটে সংরক্ষণ করেছি।
  • SimpleDateFormat: birthDate কে "dd-MM-yyyy" ফরম্যাটে কনভার্ট করার জন্য ব্যবহার করেছি।

আউটপুট:

Serialized JSON: {"name":"John Doe","birthDate":"22-12-2024"}

Custom Deserializer

Custom Deserializer ব্যবহার করে আপনি JSON ডেটাকে কাস্টম ফরম্যাট থেকে Java অবজেক্টে কনভার্ট করতে পারেন। এটি বিশেষভাবে দরকারি যখন JSON ডেটার ফরম্যাট Java অবজেক্টের কাঠামোর সাথে মেলে না এবং আপনি ডেটাকে একটি নির্দিষ্ট ফরম্যাটে পার্স করতে চান।

উদাহরণ: Custom Deserializer তৈরি করা

ধরা যাক, আমাদের JSON ডেটাতে birthDate ফিল্ডটি একটি কাস্টম ডেটা ফরম্যাটে রয়েছে এবং আমরা এটিকে Date টাইপে কনভার্ট করতে চাই।

import org.json.JSONObject;
import java.text.SimpleDateFormat;
import java.util.Date;

class Person {
    String name;
    Date birthDate;

    public Person(String name, Date birthDate) {
        this.name = name;
        this.birthDate = birthDate;
    }

    // Custom Deserializer Method
    public static Person fromJson(JSONObject jsonObject) {
        String name = jsonObject.getString("name");
        String birthDateStr = jsonObject.getString("birthDate");

        // Custom Date Format
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
        Date birthDate = null;
        try {
            birthDate = dateFormat.parse(birthDateStr);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return new Person(name, birthDate);
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', birthDate=" + birthDate + '}';
    }
}

public class CustomDeserializerExample {
    public static void main(String[] args) {
        // JSON ডেটা (birthDate কাস্টম ফরম্যাটে)
        String jsonString = "{\"name\":\"John Doe\",\"birthDate\":\"22-12-2024\"}";
        JSONObject jsonObject = new JSONObject(jsonString);

        // Custom Deserializer ব্যবহার করে JSON ডেটা থেকে Java অবজেক্ট তৈরি করা
        Person person = Person.fromJson(jsonObject);
        System.out.println("Deserialized Person: " + person);
    }
}

কোডের ব্যাখ্যা

  • fromJson(): এখানে আমরা Person ক্লাসের জন্য একটি কাস্টম fromJson() মেথড তৈরি করেছি, যা JSON অবজেক্ট থেকে Person অবজেক্ট তৈরি করে। birthDate ফিল্ডটি কাস্টম ডেটা ফরম্যাটে পার্স করা হয়েছে।
  • SimpleDateFormat: JSON ডেটার birthDate ফিল্ডটি পার্স করার জন্য আমরা "dd-MM-yyyy" ফরম্যাট ব্যবহার করেছি।

আউটপুট:

Deserialized Person: Person{name='John Doe', birthDate=Thu Dec 22 00:00:00 IST 2024}

সারাংশ

Custom Serializer এবং Custom Deserializer ব্যবহৃত হয় যখন JSON ডেটার কাঠামো Java অবজেক্টের কাঠামোর সাথে সঠিকভাবে মেলে না, বা আপনি JSON ডেটাকে একটি নির্দিষ্ট ফরম্যাটে কনভার্ট করতে চান। org.json লাইব্রেরি ব্যবহার করে আপনি সহজেই কাস্টম মেথডের মাধ্যমে JSON অবজেক্ট তৈরি এবং পার্স করতে পারেন।

  • Custom Serializer: Java অবজেক্টকে কাস্টম JSON ফরম্যাটে রূপান্তর করতে ব্যবহৃত হয়।
  • Custom Deserializer: JSON ডেটাকে কাস্টম ফরম্যাট থেকে Java অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়।

এভাবে আপনি নিজের প্রয়োজন অনুযায়ী JSON ডেটা পরিচালনা করতে পারবেন।


Content added By
Promotion

Are you sure to start over?

Loading...