@SerializedName
Gson का उपयोग करके Android में एनोटेशन का मूल उद्देश्य क्या है ?
मुझे कुछ अलग उदाहरण दें। मैं इसका उपयोग करने का मुख्य उद्देश्य नहीं समझ सकता।
@SerializedName
Gson का उपयोग करके 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 कुंजी के लिए दिखेगा में जिसके परिणामस्वरूप a
json में और यह असफल हो जायेगी।
निर्दिष्ट करके @SerializedName
, GSON चर नाम के आधार पर json में नहीं दिखेगा और केवल निर्दिष्ट का उपयोग करेगा @SerializedName
।
कोर्स के बारे में आप बता सकते हैं कि आप अपने मॉडल को बाधित न करें, लेकिन यदि आप मॉडल को बाधित करना चाहते हैं, तो आपको निर्दिष्ट करना होगा @SerializedName
आप कक्षा के शीर्ष पर @Keep को निर्दिष्ट करके अपने डेटा वर्गों को बाधित न करने के लिए प्रोगार्ड को निर्देश दे सकते हैं। यह न तो आपकी कक्षा को हटाएगा और न ही बाधित करेगा। यदि फ़ील्ड नाम इसके लिए उपयोग की जा रही कुंजी के समान है, तो प्रत्येक और प्रत्येक क्षेत्र में स्पष्ट रूप से @SerializedName जोड़ने की आवश्यकता नहीं है।