JSON डेटा को संसाधित करते समय, आप अक्सर संरचनात्मक असंगति का सामना करते हैं। कुछ गुणों को एक उदाहरण में सरणियों के रूप में और दूसरे में वस्तुओं के रूप में दर्शाया जा सकता है। यह deserialization के दौरान समस्याओं का कारण बन सकता है, खासकर टाइप-सेफ कक्षाओं का उपयोग करते समय।
सवाल:फेसबुक द्वारा लौटे JSON डेटा पर विचार करें:
]
{
"description": "",
"permalink": "..."
}
]
{
"media": [
{
"href": "...",
"src": "..."
}
]
}
]
इस स्थिति को संभालने के लिए, हम एक कस्टम JSON कनवर्टर बना सकते हैं। यह कनवर्टर JSON संरचना की जांच करेगा और एक सरणी या ऑब्जेक्ट की उपस्थिति के आधार पर एक सूची या अशक्त लौटाएगा।
]
{
पब्लिक ओवरराइड ऑब्जेक्ट Readjson (JsonReader Reader, Type ObjectType, ऑब्जेक्ट मौजूदा, JSonserializer Serializer)
{
if (reader.tokentype == jsontoken.startarray)
रिटर्न सीरियल।
अन्य
वापसी नल;
}
पब्लिक ओवरराइड शून्य राइटजसन (JSONWRITER लेखक, ऑब्जेक्ट वैल्यू, JSonserializer Serializer)
{
नया NotimplementEdException () फेंक दें;
}
सार्वजनिक ओवरराइड बूल कैनकनवर्ट (टाइप ऑब्जेक्टटाइप)
{
वापसी ऑब्जेक्ट टाइप == टाइपोफ़ (सूची
{
"name": null,
"caption": null,
"media": {}
}
अब, deserialization "मीडिया" विशेषता के सरणी और वस्तु को सफलतापूर्वक संसाधित करेगा।
एकल वस्तुओं के लिए एक्सटेंशन:]
] { पब्लिक ओवरराइड ऑब्जेक्ट Readjson (JsonReader Reader, Type ObjectType, ऑब्जेक्ट मौजूदा, JSonserializer Serializer) { वस्तु परिणाम; if (reader.tokentype == jsontoken.startObject) { T उदाहरण = (t) Serializer.Deserialize (रीडर, टाइपोफ़ (टी)); परिणाम = नई सूची
]
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3