मेरे पास निम्न है:
सार्वजनिक वर्ग बेसइन्टीटी & lt; T & gt; जहां टी: कक्षा {सार्वजनिक ऑपरेशनस्टैटस ऑपरेशन स्टेटस {सेट; प्राप्त; } सार्वजनिक सूची & lt; T & gt; सूची {सेट; प्राप्त; } सुरक्षित आंतरिक बेसइन्टीटी () {यदि (ऑपरेशनस्टैटस == रिक्त) {ऑपरेशनस्टैटस = नया ऑपरेशनस्टाटस (); ऑपरेशनस्टाटस। आईएसयूवीस = सच; } This.List = नई सूची & lt; T & gt; (); } आंतरिक बेसइन्टीटी (आईएनइमेरेबल & लेफ्टिनेंट; टी & gt; सूची) {यदि (ऑपरेशनस्टैटस == रिक्त) {ऑपरेशनस्टैटस = नया ऑपरेशनस्टाटस (); ऑपरेशनस्टाटस। आईएसयूवीस = सच; } This.List = नई सूची & lt; T & gt; (); विदेशी भाषा (सूची में टी क) {this.List.Add (k); }}} पब्लिक क्लास KeyValuePair {सार्वजनिक स्ट्रिंग कुंजी; सार्वजनिक स्ट्रिंग मान; } सार्वजनिक वर्ग की वैल्यूअरपियर लिस्ट: बेसइन्टीटी & lt; कीवालपेअर & gt; {सार्वजनिक कुंजी वैलिपारलिस्ट} {} सार्वजनिक कुंजी वैलपियरलिस्ट (आईआईएनमेरेबल & लेफ्टिनेंट; कीवेलपेअर & gt; सूची): आधार (सूची) {}} // कई अन्य वर्ग जैसे कीवेल्यूपेयर पर सभी एक ही व्यवहार है, इसलिए वे बेसएन्टीटी से प्राप्त हुए हैं अब मेरे कोड में, मैं KeyValuePair सूची में एक JSON स्ट्रिंग को मैप करने की कोशिश कर रहा हूं और मैं वर्तमान में ऐसा कर रहा हूं: \ "ErrorCode \": null, \ "InnerException \": \ "त्रुटि \": ":" \ ": \" सूची \ ": [{\" key \ ": \" key1 \ "," \ value \ ": \" value1 \ "}, {\" key \ ": \" key2 \ " , \ "मान \": \ "Value2 \"}]}} प्रयास # 1 JavaScriptSerializer serializer = नया JavaScriptSerializer (); चाबीवैलपियरलिस्ट आउटपुट = सीरियलाइजर। डायरेरिअलाइज़ & लेफ्टिनेंट; कीवालपेअरलिस्ट & gt; (परिणाम); हालांकि, यह काम नहीं करता है क्योंकि केवाल्लेपीयरलिस्ट के कन्स्ट्रक्टर को किसी भी तर्क के साथ नहीं बुलाया जा रहा है। अगर मैं उस कन्स्ट्रक्टर को निकालता हूं, तो JSON सीरियलाइजेशन एक त्रुटि कोई पैरामीटर वाला कन्स्ट्रक्टर पाया जाता है में विफल रहता है। मैं KeyValuePairList का उपयोग करने के लिए KeyValuePair को अपने आवर्तन में टेम्पलेट के रूप में कैसे बताऊं? या हो सकता है कि मैं इस प्रयोजन के लिए जेएसओएन सीरियललाइज़र कैसे बदलूं? # 2 की कोशिश मैंने कोशिश की JSON.net भी, इस प्रकार है: var oo = JsonConvert.DeserializeObject & lt; कीवाल्यूअरपीयरलिस्ट & gt; (परिणाम); यह काम कैसे करें?
असल में समाधान से मैंने सोचा था कि यह आसान होगा। समस्या यह है कि सर्वर रूट नोड d के साथ JSON स्ट्रिंग वापस कर रहा है। इसके कारण deserializing विफल रहता है क्योंकि यह नहीं जानता कि रूट नोड d के साथ क्या करना है इसका पालन किया जा सकता है: चरण 1: एक अतिरिक्त वर्ग JSONWrapper जोड़ें जो आने वाली JSON स्ट्रिंग्स को लपेटता है: सार्वजनिक वर्ग JSONWrapper & lt; T & gt ; जहां टी: वर्ग {सार्वजनिक टी डी {सेट; चरण 2: इसके बजाय इस नए वर्ग का उपयोग करना Deserialize JavaScriptSerializer serializer = नया JavaScriptSerializer ();;;}} Var oo = serializer.Deserialize & lt; JsonWrapper & lt; KeyValuePairList & gt; & gt; (परिणाम);
मेरे पूरे तर्क के साथ बहुत अधिक इन-लाइन है इसलिए मुझे कोई बड़ा परिवर्तन करने की ज़रूरत नहीं है हर किसी के लिए धन्यवाद जो अपनी बहुमूल्य समय के साथ मेरी मदद करता है।
Comments
Post a Comment