Gson লাইব্রেরি দিয়ে আপনি সহজেই JSON ফিল্ডের নাম পরিবর্তন এবং mapping কনফিগারেশন করতে পারেন। এটা করার জন্য, আপনি @SerializedName অ্যানোটেশন ব্যবহার করতে পারেন। @SerializedName অ্যানোটেশনটি আপনাকে Java ফিল্ড এবং JSON ফিল্ডের মধ্যে কাস্টম ম্যাপিং করতে সাহায্য করে, যখন JSON ডাটা একটি ভিন্ন নাম বা ফরম্যাটে থাকে।
1. @SerializedName অ্যানোটেশন ব্যবহার করে ফিল্ড নাম পরিবর্তন
এটি যখন প্রয়োজন হয়, যে সময় JSON ফিল্ডের নাম Java ফিল্ডের নামের সাথে মেলে না বা আপনি JSON ফাইলের স্টাইল (যেমন, snake_case বা camelCase) এর সাথে কাজ করছেন।
উদাহরণ:
ধরা যাক, আপনার JSON ডাটা এমন:
{
"first_name": "John",
"last_name": "Doe",
"user_email": "john.doe@example.com"
}
এখন, আপনি যদি এই JSON ডাটাকে Person নামক Java ক্লাসে ম্যাপ করতে চান, তবে আপনি @SerializedName অ্যানোটেশন ব্যবহার করতে পারেন।
Java ক্লাস:
import com.google.gson.annotations.SerializedName;
class Person {
@SerializedName("first_name")
String firstName;
@SerializedName("last_name")
String lastName;
@SerializedName("user_email")
String email;
public Person(String firstName, String lastName, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
}
JSON Parsing Example:
import com.google.gson.Gson;
public class GsonFieldNameExample {
public static void main(String[] args) {
// JSON ডাটা স্ট্রিং
String json = "{\"first_name\":\"John\", \"last_name\":\"Doe\", \"user_email\":\"john.doe@example.com\"}";
// Gson অবজেক্ট তৈরি
Gson gson = new Gson();
// JSON ডাটা থেকে Person অবজেক্টে রূপান্তর করা
Person person = gson.fromJson(json, Person.class);
// Person অবজেক্ট প্রিন্ট করা
System.out.println("First Name: " + person.firstName);
System.out.println("Last Name: " + person.lastName);
System.out.println("Email: " + person.email);
}
}
আউটপুট:
First Name: John
Last Name: Doe
Email: john.doe@example.com
ব্যাখ্যা:
@SerializedNameঅ্যানোটেশনটিPersonক্লাসের ফিল্ডগুলির নাম এবং JSON ফিল্ডের নামের মধ্যে ম্যাপিং তৈরি করে। যেমনfirst_nameJSON ফিল্ডটিfirstNameJava ফিল্ডের সাথে ম্যাপ হয়েছে।
2. @SerializedName অ্যানোটেশন সহ বিভিন্ন JSON কনফিগারেশন
এছাড়া, @SerializedName অ্যানোটেশনটি একাধিক প্যারামিটার সহ ব্যবহার করা যেতে পারে, যা কাস্টম কনফিগারেশন প্রদান করে।
উদাহরণ:
import com.google.gson.annotations.SerializedName;
class Person {
@SerializedName(value = "first_name", alternate = {"firstName", "fname"})
String firstName;
@SerializedName(value = "last_name", alternate = {"lastName"})
String lastName;
@SerializedName("user_email")
String email;
}
এখানে alternate ব্যবহার করা হয়েছে, যা JSON এর একাধিক সম্ভাব্য নামের সাথে কনফিগার করা হয়। উদাহরণস্বরূপ:
- JSON ফিল্ডের নাম
first_name,firstName, অথবাfnameযেকোনো একটির সাথেfirstNameJava ফিল্ডটি ম্যাপ হবে।
JSON Parsing Example:
import com.google.gson.Gson;
public class GsonFieldNameExample {
public static void main(String[] args) {
// JSON ডাটা স্ট্রিং
String json = "{\"firstName\":\"John\", \"lastName\":\"Doe\", \"user_email\":\"john.doe@example.com\"}";
// Gson অবজেক্ট তৈরি
Gson gson = new Gson();
// JSON ডাটা থেকে Person অবজেক্টে রূপান্তর করা
Person person = gson.fromJson(json, Person.class);
// Person অবজেক্ট প্রিন্ট করা
System.out.println("First Name: " + person.firstName);
System.out.println("Last Name: " + person.lastName);
System.out.println("Email: " + person.email);
}
}
আউটপুট:
First Name: John
Last Name: Doe
Email: john.doe@example.com
3. GsonBuilder দিয়ে কাস্টম Mapping কনফিগারেশন
এছাড়াও, আপনি GsonBuilder ব্যবহার করে কাস্টম ফিল্ড নাম ম্যাপিং কনফিগার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি সকল ফিল্ডের নামের স্টাইল পরিবর্তন করতে চান (যেমন snake_case থেকে camelCase), তাহলে আপনি FieldNamingPolicy ব্যবহার করতে পারেন।
উদাহরণ:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
class Person {
String firstName;
String lastName;
String email;
}
public class GsonFieldNamingPolicyExample {
public static void main(String[] args) {
// Person অবজেক্ট তৈরি
Person person = new Person();
person.firstName = "John";
person.lastName = "Doe";
person.email = "john.doe@example.com";
// GsonBuilder দিয়ে কাস্টম FieldNamingPolicy ব্যবহার করা
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(com.google.gson.FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.create();
// Person অবজেক্টকে JSON এ কনভার্ট করা
String json = gson.toJson(person);
System.out.println(json);
}
}
আউটপুট:
{"first_name":"John","last_name":"Doe","email":"john.doe@example.com"}
ব্যাখ্যা:
- এখানে
FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORESব্যবহার করা হয়েছে, যা সকল Java ফিল্ড নামের মধ্যে_(underscore) যোগ করে এবং ছোট অক্ষরে রূপান্তরিত করে। @SerializedNameঅ্যানোটেশন ব্যবহার করে আপনি JSON ফিল্ড নাম এবং Java ফিল্ড নামের মধ্যে কাস্টম ম্যাপিং করতে পারেন। এটি JSON ফরম্যাটের বিভিন্ন শৈলী এবং মানের জন্য খুবই কার্যকরী।alternateপ্যারামিটার ব্যবহার করে একাধিক JSON ফিল্ড নামের সাথে একই Java ফিল্ড ম্যাপ করা যায়।- GsonBuilder এর মাধ্যমে কাস্টম
FieldNamingPolicyব্যবহার করে আপনি Java ফিল্ডের নামের স্টাইল পরিবর্তন করতে পারেন।
এভাবে Gson লাইব্রেরির মাধ্যমে আপনি JSON ডাটা ফরম্যাটের সাথে সঠিকভাবে মিলে গিয়ে আপনার Java অবজেক্টের ফিল্ডের নাম পরিবর্তন ও কাস্টম ম্যাপিং কনফিগারেশন করতে পারেন।
Read more