@SerializedNameGson का उपयोग करके Android में एनोटेशन का मूल उद्देश्य क्या है ?
मुझे कुछ अलग उदाहरण दें। मैं इसका उपयोग करने का मुख्य उद्देश्य नहीं समझ सकता।
@SerializedNameGson का उपयोग करके Android में एनोटेशन का मूल उद्देश्य क्या है ?
मुझे कुछ अलग उदाहरण दें। मैं इसका उपयोग करने का मुख्य उद्देश्य नहीं समझ सकता।
जवाबों:
जावा वर्ग उदाहरण,
public class Person {
@SerializedName("name")
private String personName;
@SerializedName("bd")
private String birthDate;
}
इस वर्ग के दो क्षेत्र हैं जो व्यक्ति के नाम और जन्मतिथि का प्रतिनिधित्व करते हैं। इन फ़ील्ड्स को @SerializedName एनोटेशन के साथ एनोटेट किया गया है । इस एनोटेशन के पैरामीटर (मान) का उपयोग कब serialisingऔर deserialisingवस्तुओं के लिए किया जाना है । उदाहरण के लिए, जावा क्षेत्र के व्यक्तिनाम को JSON में नाम के रूप में दर्शाया गया है ।
JSON उदाहरण,
{
"name":"chintan",
"bd":"01-01-1990"
}
Jsonलिए सहायक था
यहां पहले से ही कुछ उत्तर हैं, लेकिन मैं यह जोड़ना चाहूंगा कि यदि आप ProGuardअपने कोड का उपयोग कर रहे हैं और @SerializedName("name")अपने मॉडल वर्ग में उपयोग नहीं करते हैं , तो आपका GSON काम नहीं करेगा। कहानियो के कारण, अपने चर नाम से परिवर्तित हो सकता है क्योंकि String nameके लिए String aटूट GSON पार्स करने के रूप में GSON कुंजी के लिए दिखेगा में जिसके परिणामस्वरूप ajson में और यह असफल हो जायेगी।
निर्दिष्ट करके @SerializedName, GSON चर नाम के आधार पर json में नहीं दिखेगा और केवल निर्दिष्ट का उपयोग करेगा @SerializedName।
कोर्स के बारे में आप बता सकते हैं कि आप अपने मॉडल को बाधित न करें, लेकिन यदि आप मॉडल को बाधित करना चाहते हैं, तो आपको निर्दिष्ट करना होगा @SerializedName
आप कक्षा के शीर्ष पर @Keep को निर्दिष्ट करके अपने डेटा वर्गों को बाधित न करने के लिए प्रोगार्ड को निर्देश दे सकते हैं। यह न तो आपकी कक्षा को हटाएगा और न ही बाधित करेगा। यदि फ़ील्ड नाम इसके लिए उपयोग की जा रही कुंजी के समान है, तो प्रत्येक और प्रत्येक क्षेत्र में स्पष्ट रूप से @SerializedName जोड़ने की आवश्यकता नहीं है।