Gson ব্যবহার করে JSON ডেটাকে Java Object-এ রূপান্তর (Deserialization) করার সময়, আপনি বিভিন্ন ধরনের ডেটা টাইপ যেমন Primitive টাইপ (int, boolean, float ইত্যাদি), String, এবং Custom Objects কে ডেসেরিয়ালাইজ করতে পারেন। নিচে এই সমস্ত ডেসেরিয়ালাইজেশন প্রক্রিয়া বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে।
1. Primitive Data Types (int, float, boolean)
Gson সহজেই primitive টাইপ যেমন int, boolean, float, double ইত্যাদিকে JSON থেকে Java primitive টাইপে রূপান্তর করতে পারে।
উদাহরণ: Primitive Data Type (int)
JSON:
{
"age": 30
}
Java Code:
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
String json = "{\"age\":30}";
Gson gson = new Gson();
// JSON to Primitive (int)
int age = gson.fromJson(json, int.class);
System.out.println("Age: " + age);
}
}
আউটপুট:
Age: 30
2. String Data Type
String ডেটাকে JSON থেকে Java String এ ডেসেরিয়ালাইজ করা খুবই সাধারণ প্রক্রিয়া। Gson স্বাভাবিকভাবে এটি সমর্থন করে।
উদাহরণ: String Data Type
JSON:
{
"name": "Rahim"
}
Java Code:
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
String json = "{\"name\":\"Rahim\"}";
Gson gson = new Gson();
// JSON to String
String name = gson.fromJson(json, String.class);
System.out.println("Name: " + name);
}
}
আউটপুট:
Name: Rahim
3. Custom Object (Complex Object)
Gson কাস্টম অবজেক্ট ডেসেরিয়ালাইজ করতে সক্ষম, যেটা কোনো Java ক্লাস হতে পারে, যার মধ্যে একাধিক ফিল্ড এবং বিভিন্ন ডেটা টাইপ থাকে। এটি করার জন্য, JSON স্ট্রাকচার এবং Java ক্লাসের মধ্যে সঠিক মেপিং থাকতে হবে।
উদাহরণ: Custom Object
Java Class (Custom Object):
class User {
String name;
int age;
String email;
// Constructor
public User(String name, int age, String email) {
this.name = name;
this.age = age;
this.email = email;
}
// Getter methods
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getEmail() {
return email;
}
}
JSON:
{
"name": "Rahim",
"age": 30,
"email": "rahim@example.com"
}
Java Code (Deserialization to Custom Object):
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
String json = "{\"name\":\"Rahim\",\"age\":30,\"email\":\"rahim@example.com\"}";
Gson gson = new Gson();
// JSON to Custom Object (User)
User user = gson.fromJson(json, User.class);
System.out.println("Name: " + user.getName());
System.out.println("Age: " + user.getAge());
System.out.println("Email: " + user.getEmail());
}
}
আউটপুট:
Name: Rahim
Age: 30
Email: rahim@example.com
4. কাস্টম ডেসেরিয়ালাইজেশন (Custom Deserialization)
Gson একটি কাস্টম ডেসেরিয়ালাইজার ব্যবহার করতে দেয়, যা আপনাকে JSON ডেটাকে আপনার ইচ্ছামত Java অবজেক্টে রূপান্তর করতে সাহায্য করে। এটি তখন ব্যবহার করা হয় যখন JSON ফর্ম্যাট খুবই কাস্টম বা জটিল হয় এবং সাধারণ ডেসেরিয়ালাইজেশন কাজ করে না।
উদাহরণ: Custom Deserializer
Java Class:
class User {
String name;
int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User{name='" + name + "', age=" + age + "}";
}
}
Custom Deserializer:
import com.google.gson.*;
import java.lang.reflect.Type;
class UserDeserializer implements JsonDeserializer<User> {
@Override
public User deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
JsonObject jsonObject = json.getAsJsonObject();
String name = jsonObject.get("fullName").getAsString();
int age = jsonObject.get("years").getAsInt();
return new User(name, age);
}
}
JSON:
{
"fullName": "Rahim",
"years": 30
}
Java Code (Using Custom Deserializer):
import com.google.gson.*;
public class Main {
public static void main(String[] args) {
String json = "{\"fullName\":\"Rahim\",\"years\":30}";
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(User.class, new UserDeserializer());
Gson gson = gsonBuilder.create();
// Custom Deserialization
User user = gson.fromJson(json, User.class);
System.out.println(user);
}
}
আউটপুট:
User{name='Rahim', age=30}
সারাংশ:
- Primitive Data Types (যেমন int, float) সহজেই JSON থেকে Java primitive টাইপে রূপান্তরিত হতে পারে।
- String ডেটা JSON থেকে String-এ রূপান্তরিত হয়।
- Custom Object (যেমন একটি Java ক্লাস) JSON থেকে Java Object-এ রূপান্তরিত করা হয়।
- Custom Deserialization ব্যবহার করে আপনি বিশেষভাবে কাস্টম JSON ফরম্যাট থেকে Java Object তৈরি করতে পারেন।
Gson-এ এই ডেসেরিয়ালাইজেশন প্রক্রিয়াগুলি খুবই সহজ, এবং এটি অনেক সময় JSON ডেটাকে Java অবজেক্টে রূপান্তরিত করতে সাহায্য করে, যা Java ডেভেলপমেন্টে খুবই কার্যকরী।
Read more