FieldNamingPolicy ব্যবহার করে JSON ফিল্ড নামের জন্য কিছু স্ট্যান্ডার্ড নামকরণ কনভেনশন ডিফাইন করা যায় এবং এটি GsonBuilder-এর সাথে সংযোজিতভাবে ব্যবহার করা যায় যাতে একটি Gson ইনস্ট্যান্স কনফিগার করা যায় যাতে জাভা ফিল্ড নামগুলি যেতোক্রমে JSON ফিল্ড নামে অনুবাদ করা যায়। আমরা GsonBuilder-এর setFieldNamingPolicy() মেথড ব্যবহার করে সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশনের সময় একটি অবজেক্টের ফিল্ডের জন্য একটি নির্দিষ্ট নামকরণ পলিসি কনফিগার করতে পারি।
Gson নিম্নলিখিত ফিল্ড নামকরণ পলিসিগুলি সমর্থন করে:
- FieldNamingPolicy.IDENTITY: এটি জাভা মডেলের সঠিক একই নামকরণ ব্যবহার করে যখন এটি একটি অবজেক্ট সিরিয়ালাইজ করে।
- FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES: এটি একটি জাভা ফিল্ড নামকে এর ক্যামেল-কেসড ফর্ম থেকে একটি লোয়ার কেস ফিল্ড নামে রূপান্তর করে যেখানে প্রতিটি শব্দ আন্ডারস্কোর (_) দ্বারা পৃথক করা হয়।
- FieldNamingPolicy.LOWER_CASE_WITH_DASHES: এটি জাভা ফিল্ড নামকে এর ক্যামেল-কেসড ফর্ম থেকে একটি লোয়ার কেস ফিল্ড নামে রূপান্তর করে যেখানে প্রতিটি শব্দ ড্যাশ (-) দ্বারা পৃথক করা হয়।
- FieldNamingPolicy.UPPER_CAMEL_CASE: এটি নিশ্চিত করে যে জাভা ফিল্ড নামের প্রথম "অক্ষর" ক্যাপিটালাইজড হয় যখন এটি তার JSON ফর্মে সিরিয়ালাইজ করা হয়।
- FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES: এটি নিশ্চিত করে যে জাভা ফিল্ড নামের প্রথম "অক্ষর" ক্যাপিটালাইজড হয় যখন এটি তার JSON ফর্মে সিরিয়ালাইজ করা হয় এবং শব্দগুলি স্পেস দ্বারা পৃথক করা হয়।
উদাহরণ
import com.google.gson.*;
import java.sql.Date;
import java.time.LocalDate;
public class FieldNamingPolicyTest {
public static void main(String[] args) {
Gson gson = new GsonBuilder().setPrettyPrinting().setDateFormat("yyyy-MM- dd") .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create();
Person p = new Person("Raja", "Ramesh", 30, Date.valueOf(LocalDate.of(1988, 1, 1)));
String jsonStr = gson.toJson(p);
System.out.println(jsonStr);
}
}
// Person ক্লাস
class Person {
private String fistName;
private String lastName;
private int _age;
private Date dateOfBirth;
public Person(String fistName, String lastName, int _age, Date dateOfBirth) {
super();
this.fistName = fistName;
this.lastName = lastName;
this._age = _age;
this.dateOfBirth = dateOfBirth;
}
}
আউটপুট
{
"fist-name": "Raja", "last-name": "Ramesh", "_age": 30, "date-of-birth": "1988-01-01" }