c# - Cannot deserialize the current JSON object..into type 'System.Collections.Generic.List`1[System.String]' -
पूर्ण त्रुटि
मौजूदा JSON ऑब्जेक्ट को deserialize नहीं कर सकते (जैसे {"name": " मान "}) प्रकार 'System.Collections.Generic.List' 1 [System.String] 'में टाइप करें क्योंकि इस प्रकार के लिए एक JSON सरणी (उदाहरण [1,2,3]) की आवश्यकता होती है ताकि वह सही तरीके से deserialize हो। इस त्रुटि को ठीक करने के लिए या तो JSON को किसी JSON सरणी में परिवर्तित करें (जैसे [1,2,3]) या deserialized प्रकार को बदल दें ताकि यह एक सामान्य .नेट प्रकार (उदाहरण के लिए नहीं एक आदिम प्रकार की तरह पूर्णांक, एक संग्रह प्रकार की तरह एक सरणी या सूची) जिसे एक JSON ऑब्जेक्ट से हटाया जा सकता है JsonObjectAttribute को एक JSON ऑब्जेक्ट से deserialize करने के लिए इसे लागू करने के लिए प्रकार में भी जोड़ा जा सकता है पथ 'CEC1B0C9-A87A-4A9E-A017-AEFC3CEDCBD4', पंक्ति 2, स्थिति 42।
कोड के इस बिट से पहले, एक है कि अच्छी तरह से काम करता है ...
var हाइलाइट = जेसन कन्वर्ट। डायरेरिअलाइज ऑब्जेक्ट & लेफ्टिनेंट; ऑब्जेक्ट & gt; (jsonDeserialized ["हाइलाइटिंग"]। टूस्ट्रिंग ());
यह हमें हमारे खोज इंजन से कुछ डेटा देता है:
{\ r \ n "C6C1B0C9-A87A-4A9E-A017-AEFC3CEDCBD4": {\ r \ n "Title_fr": [\ r \ n "& LT; उन्हें & gt; क्रिस & lt; / उन्हें & gt; & lt; उन्हें & gt; Cep & lt; / उन्हें & gt;" \ r \ n] \ r \ n}, \ r \ n "874BE5B1- FAA0-463F-98DD-8532D4D80178 ": {\ r \ n" Content_fr ": [\ r \ n" & lt; em & gt; क्रिस & lt; / em & gt; & lt; em & gt; सीईपी & lt; / em & gt ;, सीटीएफएल \ n \ n9 जानकारी - टीजीआईएफ़ / जनवरी - फरवरी 2001 \ n \ n नेट पर Tgif \ n पूछताछ \ "\ r \ n] \ r \ n}, \ r \ n" 44FA5B99-9472-499C-9827-646A511068DA ": {\ r \ n" Content_fr ": [\ r \ n" एस \ n \ nHorti \ n डेटाबेस \ ndocument \ n & LT; उन्हें & gt; क्रिस & lt; / उन्हें & gt; & lt; उन्हें & gt; Cep & lt; / उन्हें & gt ;, इसो लौ, \ nJeane शमूएल "\ r \ n ] \ R \ n} \ r \ n} // स्वरूपित - http://jsonblob.com/53d24a78e4b0ed12c5a6b1df {"C6C1B0C9-A87A-4A 9E-A017-AEFC3CEDCBD4": {"Title_fr": ["& lt; em & gt; क्रिस & lt; / Em & gt; & lt; em & gt; सीएपी & lt; / em & gt; " ]}, "874BE5B1-FAA0-463F-98DD-8532D4D80178": {"Content_fr": ["& lt; em & gt; क्रिस & lt; / em & gt; & lt; em & gt; सीईपी & lt; / em & gt ;, सीटीएफएल \ n \ n9 जानकारी - Tgif / जनवरी - फरवरी 2001 \ n \ n Tgif नेट \ nInquire पर "]}," 44FA5B99-9472-499C-9827-646A511068DA ": {" Content_fr ": [" एस \ n \ nHorti \ n डेटाबेस \ ndocument \ n & LT; उन्हें & gt; क्रिस & lt; / उन्हें & gt; & lt; उन्हें & gt; Cep & lt; / उन्हें & gt ;, इसो लौ, \ nJeane शमूएल "]}}
समस्या, मुझे विश्वास है, यह है कि नीचे तीन वस्तुओं सभी "नाम" अलग तरीके से कर रहे हैं अर्थात। मैं
JsonConvert.DeserializeObject & lt; List & gt; स्ट्रिंग & gt; & gt; (jsonDeserialized ["हाइलाइटिंग"] ["CAN'T-REFERENCE-ANYTHING-HERE"] नहीं कर सकता। ToString ()) क्योंकि नाम उन नोड्स में GUIDs जैसे
C6C1B0C9-A87A-4A9E-A017-AEFC3CEDCBD4 ।
मैं अभी भी JSON के साथ अपेक्षाकृत हरा हूं - मैं यहाँ क्या याद कर रहा हूं? मैं सूची में "हाइलाइटिंग" में तीन ऑब्जेक्ट कैसे प्राप्त कर सकता हूं & lt; & gt; किसी प्रकार का?
मेरा समाधान:
निजी वर्ग हाइलाइटर्स // अन्य जगह परिभाषित {सार्वजनिक स्ट्रिंग idglobal; सार्वजनिक स्ट्रिंग फ़ील्डनाम; सार्वजनिक स्ट्रिंग फ़ील्ड मूल्य; } Var हाइलाइजर्स = नई सूची & lt; हाइलाइटर्स & gt; (); Var allHighlights = JsonConvert.DeserializeObject & lt; IDictionary & lt; स्ट्रिंग, ऑब्जेक्ट & gt; & gt; (jsonDeserialized ["हाइलाइटिंग"]। ToString ()); Foreach (सभी हाइलाइट्स में विभिन्न प्रविष्टियां) {string guid = entry.Key; स्ट्रिंग j = एंट्री। वैल्यू। टॉस्ट्रिंग (); Var अंदरएन्त्र = जेसन कन्वर्ट। डायरेरिअलाइज़ ऑब्जेक्ट & lt; IDictionary & lt; स्ट्रिंग, ऑब्जेक्ट & gt; & gt; (जे); Foreach (अंदर के अंदर एच) {string highlightField = h। Key; स्ट्रिंग हाइलाइट वैल्यू = एच। वेल। टॉस्ट्रिंग ()। सबस्ट्रिंग (1, एच। वेल। टॉस्ट्रिंग ()। लास्ट इंडेक्सऑफ़ ("]") - 1) ट्रिम () .ट्रिम ('' ')। ट्रिम (); // एक छोटी सी सफाई हाइलाइटर। जोड़ें (नया हाइलाइटर्स {आईडीग्लोबल = ग्रिड, फ़ील्डनाम = हाइलाइटफिल्ड, फील्डवॉल = हाइलाइटविले}};}}
यदि आप चाबियाँ (जो कि आपके उदाहरण में GUID हैं) में दिलचस्पी नहीं रखते, तो JSON को
डिक्शनरी & lt; स्ट्रिंग, जॉबइज & gt; के लिए deserialize और
परिणामस्वरूप शब्दकोष का मूल्य ।
Comments
Post a Comment