Field Name পরিবর্তন এবং Mapping কনফিগারেশন

Gson এর Field Naming Strategy - জিসন (Gson) - Java Technologies

330

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_name JSON ফিল্ডটি firstName Java ফিল্ডের সাথে ম্যাপ হয়েছে।

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 যেকোনো একটির সাথে firstName Java ফিল্ডটি ম্যাপ হবে।

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 অবজেক্টের ফিল্ডের নাম পরিবর্তন ও কাস্টম ম্যাপিং কনফিগারেশন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...