@JSON एनोटेशन का उपयोग JSONSerializer क्लास द्वारा सीरियलाइजेशन प्रक्रिया के दौरान फील्ड को एक्सक्लूड या इन्क्लूड करने के लिए किया जाता है। हम JSONSerializer क्लास के serialize() मेथड का उपयोग टार्गेट इंस्टेंस की शैलो सीरियलाइजेशन करने के लिए कर सकते हैं।
सिंटैक्स
@Retention(value=RUNTIME)
@Target(value={FIELD,TYPE,METHOD})
public @interface JSON
उदाहरण
import flexjson.JSONSerializer;
import flexjson.JSON;
public class JSONAnnotationTest {
public static void main(String[] args) {
JSONSerializer serializer = new JSONSerializer().prettyPrint(true);
Employee emp = new Employee("Raja", "Ramesh", 30, "Hyderabad");
String jsonStr = serializer.serialize(emp);
System.out.println(jsonStr);
}
}
// Employee क्लास
class Employee {
private String firstName, lastName, address;
private int age;
public Employee(String firstName, String lastName, int age, String address) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.address = address;
}
public String getFirstName() {
return firstName;
}
@JSON(include=false)
public String getLastName() {
return lastName;
}
public int getAge() {
return age;
}
@JSON(include=false)
public String getAddress() {
return address;
}
}
आउटपुट
{
"age": 30,
"class": "Employee",
"firstName": "Raja"
}
मुख्य विशेषताएं
- include=true/false: फील्ड को सीरियलाइजेशन में शामिल या बहिष्कृत करने के लिए
- format: डेट फॉर्मेट जैसे कस्टम फॉर्मेटिंग के लिए
- name: JSON में अलग नाम देने के लिए
अन्य उपयोगी एनोटेशन्स
@JSON(include=false) // फील्ड को एक्सक्लूड करें
@JSON(name="customName") // JSON प्रॉपर्टी नाम बदलें
@JSON(format="yyyy-MM-dd") // डेट फॉर्मेट निर्दिष्ट करें
Flexjson vs Jackson
| विशेषता | Flexjson | Jackson |
|---|---|---|
| एनोटेशन | @JSON | @JsonProperty, @JsonIgnore, आदि |
| मैच्योरिटी | पुराना, कम मेंटेन | सक्रिय रूप से मेंटेन, लोकप्रिय |
| परफॉरमेंस | मध्यम | उच्च (स्ट्रीमिंग API) |
| फीचर्स | बेसिक | व्यापक (पॉलीमॉर्फिज्म, मॉड्यूल्स, आदि) |
नोट
Flexjson अब सक्रिय रूप से मेंटेन नहीं किया जाता है। नए प्रोजेक्ट्स के लिए Jackson या Gson का उपयोग करने की सिफारिश की जाती है।