मैं Gson सीखने की कोशिश कर रहा हूँ और मैं क्षेत्र बहिष्कार से जूझ रहा हूँ। यहाँ मेरी कक्षाएं हैं
public class Student {
private Long id;
private String firstName = "Philip";
private String middleName = "J.";
private String initials = "P.F";
private String lastName = "Fry";
private Country country;
private Country countryOfBirth;
}
public class Country {
private Long id;
private String name;
private Object other;
}
मैं GsonBuilder का उपयोग करें और की तरह एक फ़ील्ड नाम के लिए एक ExclusionStrategy जोड़ सकते हैं firstName
या country
लेकिन मैं जैसे कुछ क्षेत्रों के गुणों को बाहर करने का प्रबंधन नहीं कर पा रहे country.name
।
विधि का उपयोग करते हुए public boolean shouldSkipField(FieldAttributes fa)
, FieldAttributes में फ़िल्टर जैसे फ़ील्ड से मिलान करने के लिए पर्याप्त जानकारी नहीं होती है country.name
।
पुनश्च: मैं एनोटेशन से बचना चाहता हूं क्योंकि मैं इस पर सुधार करना चाहता हूं और खेतों को छानने के लिए RegEx का उपयोग करता हूं।
संपादित करें : मैं यह देखने की कोशिश कर रहा हूं कि क्या Struts2 JSON प्लगइन के व्यवहार का अनुकरण करना संभव है
Gson का उपयोग कर
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</interceptor-ref>
संपादित करें: मैंने प्रश्न को निम्नलिखित जोड़ के साथ फिर से खोल दिया:
मैंने इस समस्या को स्पष्ट करने के लिए उसी प्रकार के साथ एक दूसरा क्षेत्र जोड़ा। मूल रूप से मैं बाहर करना चाहता हूं country.name
लेकिन नहीं countrOfBirth.name
। मैं भी एक प्रकार के रूप में देश को बाहर नहीं करना चाहता। तो प्रकार समान हैं यह ऑब्जेक्ट ग्राफ में वास्तविक स्थान है जिसे मैं इंगित करना चाहता हूं और बाहर करना चाहता हूं।