FieldNamingPolicy का उपयोग JSON फील्ड नामों के लिए कुछ मानक नामकरण परंपराओं को परिभाषित करने के लिए किया जा सकता है और इसका उपयोग GsonBuilder के साथ संयोजन में Gson इंस्टेंस को कॉन्फ़िगर करने के लिए किया जा सकता है ताकि Java फील्ड नामों को वांछित JSON फील्ड नामों में सही ढंग से अनुवादित किया जा सके। हम GsonBuilder के setFieldNamingPolicy() मेथड का उपयोग करके किसी ऑब्जेक्ट के फील्ड के लिए सीरियलाइज़ेशन और डिसीरियलाइज़ेशन के दौरान एक विशिष्ट नामकरण नीति रणनीति को कॉन्फ़िगर कर सकते हैं।
Gson विभिन्न फील्ड नामकरण आवश्यकताओं का समर्थन निम्नलिखित फील्ड नामकरण नीतियों के साथ करता है:
- FieldNamingPolicy.IDENTITY: यह ऑब्जेक्ट को सीरियलाइज़ करते समय Java मॉडल के समान ही नामकरण का उपयोग करता है।
- FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES: यह Java फील्ड नाम को उसके कैमल-केस्ड फॉर्म से लोअर केस फील्ड नाम में बदलता है जहां प्रत्येक शब्द अंडरस्कोर (_) से अलग होता है।
- FieldNamingPolicy.LOWER_CASE_WITH_DASHES: यह Java फील्ड नाम को उसके कैमल-केस्ड फॉर्म से लोअर केस फील्ड नाम में बदलता है जहां प्रत्येक शब्द डैश (-) से अलग होता है।
- FieldNamingPolicy.UPPER_CAMEL_CASE: यह सुनिश्चित करेगा कि JSON फॉर्म में सीरियलाइज़ करते समय Java फील्ड नाम का पहला "अक्षर" कैपिटलाइज़ हो।
- FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES: यह सुनिश्चित करेगा कि JSON फॉर्म में सीरियलाइज़ करते समय Java फील्ड नाम का पहला "अक्षर" कैपिटलाइज़ हो और शब्द स्पेस से अलग हों।
उदाहरण
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"
}